【问题标题】:Why am I getting "The page has expired due to inactivity." on my API?为什么我收到“页面因不活动而过期”。在我的 API 上?
【发布时间】:2018-03-17 18:20:37
【问题描述】:

我正在尝试使用 Postman 在我的 API 中发布 Json,但出现错误:

页面因不活动而过期。

所以,我在 Postman 中访问 http://localhost:8000/api/jobs/ 。在我的 Headers 选项卡中,我使用 Content-type 作为键和 application/json 作为值并插入以下 JSON:

{"title": "PHP Developer / Laravel Expert","description": "Laravel Expert", "local": "São Paulo", "remote": "no", "company_id": "3"}

我正在使用 laravel。 这是我的 web.php 路由文件:

Route::group(array('prefix' => 'api'), function() {
Route::get('/', function () {
    return response()->json(['message' => 'Jobs API', 'status' => 'Connected']);
});

Route::resource('jobs', 'JobsController');
Route::resource('companies', 'CompaniesController');

});

这是我在 CompaniesController 上的 store 方法:

public function store(Request $request)
{
    $job = new Job();
    $job->fill($request->all());
    $job->save();

    return response()->json($job, 201);
}

【问题讨论】:

    标签: php laravel api postman


    【解决方案1】:

    我认为你使用的是 laravel version > 5.3 而不是在 web.php 中编写 API 路由,而是在 Route 文件夹中的 api.php 中编写你的 api 路由。

    api.php 文件包含 RouteServiceProvider 放置在 api 中间件组中的路由,该组提供速率限制。这些路由旨在是无状态的,因此通过这些路由进入应用程序的请求旨在通过令牌进行身份验证,并且无法访问会话状态。

    Route Directory in laravel

    【讨论】:

      【解决方案2】:

      如果你有 laravel 5.5 并且想从路由中删除 csrf 保护,那么你可以将它添加到 App\Http\Middleware\VerifyCsrfToken 中的$except = [];

      不过,您可能希望采用其他形式的身份验证。

      【讨论】:

        【解决方案3】:

        你必须在你的路由中包含中间件

        'middleware' => 'api'
        
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-08-09
          • 2012-08-12
          • 2018-08-30
          • 2019-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-31
          相关资源
          最近更新 更多