2 php laravel laravel-5 jwt-auth
我在 Laravel 5.6 项目中使用 JWT-Auth 包。
我有一个使用 getPayload 方法的简单测试,但它不断返回;
Tymon\JWTAuth\Exceptions\JWTException: A token is required
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的方法如下;
$user = factory(User::class)->create();
$token = JWTAuth::fromUser($user);
$payload = JWTAuth::getPayload($token);
Run Code Online (Sandbox Code Playgroud)
如果我这样做,dd($token)它会正确地吐出用户令牌。
如果其他人遇到了这个问题,我希望得到一些帮助。
干杯
在您的情况下,如果您将其称为:
$payload = JWTAuth::setToken($token)->getPayload();
我查看了源类,它看起来像原因;
$payload = JWTAuth::getPayload($token);
返回A token is required错误是因为它寻找$this->token变量。但是当您使用JWTAuth::fromUser($user);它设置它时,它不会为其设置任何值。
public function fromUser(JWTSubject $user)
{
return $this->fromSubject($user);
}
Run Code Online (Sandbox Code Playgroud)
...
public function fromSubject(JWTSubject $subject)
{
$payload = $this->makePayload($subject);
return $this->manager->encode($payload)->get();
}
Run Code Online (Sandbox Code Playgroud)
在这里您可以看到fromSubject()实际上返回了有效负载。因此,返回的结果fromUser()实际上应该包含您正在寻找的有效负载,尽管我对此不确定,因为我无法测试。
希望能帮助到你 :)
| 归档时间: |
|
| 查看次数: |
2629 次 |
| 最近记录: |