我正在制作单页应用程序,在处理获取请求时,我已经通过了X-CSRF-TOKEN
和X-Requested-With
标题。我还在网络中间件组中包含了\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class
。
我在api.php中的路线看起来像
Route::get('categories','Api\Categories@index')->middleware('auth:api');
但请求指定的网址会显示未经身份验证的消息。
答案 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}}