Laravel Passport 无法验证我新生成的令牌
Posted
技术标签:
【中文标题】Laravel Passport 无法验证我新生成的令牌【英文标题】:Laravel Passport is failing to validate my newly generated token 【发布时间】:2019-02-03 22:47:56 【问题描述】:尝试使用 Passport 7.0.1 访问 Laravel 5.6.35 后端中受 auth:api
中间件保护的端点时,我的应用程序突然停止工作。
问题是我注册和登录时它正在生成。
return Response::json([
'token' => $user->createToken('foobar')->accessToken,
'user' => $user
], HTTPResponse::$HTTP_OK);
Insomnia rest 在访问属于auth:api
中间件的路由时会显示以下内容。
“消息”:“未经身份验证。”
它一直工作到一个小时前,在我刷新数据库后它停止了。我删除并创建了一个新用户,注册了一个测试用户并尝试访问并将令牌作为Bearer
令牌和Accept 标头传递给application/json
的端点。我已经多次这样做了,每次刷新后总是运行php artisan passport:install --force
。
我不知道如何解决它。我在TokenGuard.php
文件中看到了失败的地方,但该怎么办?怎么突然停了?
【问题讨论】:
【参考方案1】:问题的原因是因为我将另一个字段设置为 users
表的主键,这导致 Passport 的自动生成表出现错误。
【讨论】:
【参考方案2】:刷新数据库后必须重新安装passport,才会生成Token
php工匠护照:安装
【讨论】:
抱歉没有提及。【参考方案3】:如果您使用的是 Apache 服务器,请将此行添加到您的 httpd.conf 文件中。
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
【讨论】:
以上是关于Laravel Passport 无法验证我新生成的令牌的主要内容,如果未能解决你的问题,请参考以下文章
无法找到 [Laravel\Passport\Client] 的工厂
Laravel Passport身份验证问题:始终返回未经身份验证的身份
获取经过身份验证的用户 Laravel/Lumen Passport
Nuxtjs + Laravel Echo + Laravel Passport + Laravel WebSockets 无法从私人/状态通道获取事件