Laravel JWT:本地主机上生成的令牌在服务器上有效
Posted
技术标签:
【中文标题】Laravel JWT:本地主机上生成的令牌在服务器上有效【英文标题】:Laravel JWT : generated tokens on the localhost are valid on the server 【发布时间】:2017-10-07 03:52:33 【问题描述】:我正在为移动应用程序编写 API,后端网站是用 Laravel 编写的。我正在使用 Tymon\JWTAuth 进行这样的身份验证:
function auth()
try
if(!$user = JWTAuth::parseToken()->authenticate())
return ('login or register');
catch (JWTException $e )
return ('token is invalid');
return $this->user = $user ;
今天我注意到了一些事情,当我在我的 localhost API 上为 id 为 4
的用户生成 JWT 令牌时,如果我将相同的令牌发送到实时 API 而不是收到错误消息,我会得到具有 id 的用户4
!基本上,我可以通过在我的本地主机上的他/她的 id 上生成一些令牌来使用我想要的任何用户登录。我错过了什么吗?
我不知道这是否与此有关,但为了节省测试时间,我不将令牌作为 POST 正文和标头的一部分发送,只是在带有 GET
方法的 URL 中发送,例如:
site.com/api/user?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
【问题讨论】:
我会发表评论,但我没有足够的声誉。您的本地和远程位置的密钥是否相同?我不能 100% 确定,但可能是用户 JWT 令牌的所有可能组合都是有效的,除非明确列入黑名单(或它们已过期)。因此,如果您拥有相同的密钥,那么您将获得两个应用程序的有效令牌。我也是 JWT 令牌的新手,所以我想看看是否有人对此有更多了解。 See this link for info on how JWT Tokens are verified @LeviJames 是的,就是这样,如果可以,请将其发布为答案 【参考方案1】:听起来你本地主机和远程位置的密钥是一样的。更改这些可能会解决您的问题。
【讨论】:
以上是关于Laravel JWT:本地主机上生成的令牌在服务器上有效的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 通过生成的令牌进行身份验证,无需护照和 jwt