Laravel 5.6护照api身份验证无法获取请求

时间:2018-04-23 10:42:15

标签: php laravel api

我正在制作单页应用程序,在处理获取请求时,我已经通过了X-CSRF-TOKENX-Requested-With标题。我还在网络中间件组中包含了\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class。 我在api.php中的路线看起来像

Route::get('categories','Api\Categories@index')->middleware('auth:api');

但请求指定的网址会显示未经身份验证的消息。

2 个答案:

答案 0 :(得分:4)

我前一段时间遇到了同样的问题。这就是我为解决这个问题所做的工作,这篇文章中有更多细节:https://github.com/laravel/passport/issues/47

所以这通常是修复oAuth客户端令牌:在Passport.php第167行中,到期日期设置为现在+ 100年。

return static::$tokensExpireAt? Carbon::now()->diff(static::$tokensExpireAt): new DateInterval('P100Y');

如果你把它设置为P1Y,它就可以了。类似的东西:

return static::$tokensExpireAt? Carbon::now()->diff(static::$tokensExpireAt): new DateInterval('P1Y');

对于下面几行的刷新令牌也是如此:

return static::$refreshTokensExpireAt? Carbon::now()->diff(static::$refreshTokensExpireAt): new DateInterval('P1Y');

这是针对个人令牌的:还有PassportServiceProvider.php第84行,关于个人令牌:

$server->enableGrantType(new PersonalAccessGrant, new DateInterval('P1Y'));

Hope it helps ! :)

答案 1 :(得分:3)

在请求中发送授权标头

{{1}}