Laravel 5.6护照API身份验证在GET请求中无法工作

10

我正在制作单页应用程序,在处理get请求时,我已经传递了X-CSRF-TOKENX-Requested-With头部。我还在web中间件组中包含了\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class。我的api.php路由看起来像:

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

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


你是否已经创建了带有身份验证参数的GET请求? - Henry Bui
你在 config/auth.php 文件中设置了 API 认证驱动程序为 passport 吗? - samrap
发送授权头信息 'Bearer {token}' - Jagadesha NH
提供的答案中是否有您认为没有解决您问题的地方?如果是,请在答案下评论以澄清需要解决的具体问题。如果它解决了您的问题,请点击“接受答案”(Accept Answers)。 - Priyank lohan
2个回答

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 ! :)

3

在请求中发送授权头部信息

Authorization: Bearer eYz-your-passport-generated-token

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接