【发布时间】:2018-12-21 07:15:03
【问题描述】:
我在我的 Laravel 5.6 项目中使用 JWT-Auth 包。
我有一个使用 getPayload 方法的简单测试,但它不断返回;
Tymon\JWTAuth\Exceptions\JWTException: A token is required
目前我的方法如下;
$user = factory(User::class)->create();
$token = JWTAuth::fromUser($user);
$payload = JWTAuth::getPayload($token);
如果我执行dd($token),它会正确吐出用户令牌。
如果有其他人遇到过这个问题,我希望能得到一些帮助。
干杯
【问题讨论】:
-
如果你把它称为
$payload = JWTAuth::parseToken()->getPayload();会发生什么? -
@NimeshkaSrimal 我得到以下信息;
Tymon\JWTAuth\Exceptions\JWTException: The token could not be parsed from the request -
$payload = JWTAuth::setToken($token)->getPayload();怎么样? -
哦,效果很好,我的测试现在正在运行...... parseToken 和 setToken 有什么区别?
-
我查看了源代码,发现当您使用 fromUser() 方法创建令牌时,它没有为 $this->token 变量设置任何值。但是 getPayload() 方法检查是否设置了 $this->token。这就是它失败的原因。在调用 parseToken() 之前设置令牌时,它可以访问 $this->token。希望这是有道理的。
标签: php laravel laravel-5 jwt-auth