JWT_Auth getPayload 需要返回一个令牌,即使提供了一个令牌
JWT_Auth returning a token is required for getPayload even though one is supplied
我在我的 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::setToken($token)->getPayload();
我查看了来源 class,这似乎是原因;
$payload = JWTAuth::getPayload($token);
returns A token is required
错误是因为它寻找 $this->token
变量。但是,当您使用 JWTAuth::fromUser($user);
设置它时,它不会为其设置任何值。
public function fromUser(JWTSubject $user)
{
return $this->fromSubject($user);
}
...
public function fromSubject(JWTSubject $subject)
{
$payload = $this->makePayload($subject);
return $this->manager->encode($payload)->get();
}
在这里你可以看到 fromSubject()
实际上是 returns 有效负载。所以 fromUser()
的返回结果实际上应该包含你正在寻找的有效载荷,虽然我不确定这一点,因为我无法测试。
希望对您有所帮助:)
我在我的 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::setToken($token)->getPayload();
我查看了来源 class,这似乎是原因;
$payload = JWTAuth::getPayload($token);
returns A token is required
错误是因为它寻找 $this->token
变量。但是,当您使用 JWTAuth::fromUser($user);
设置它时,它不会为其设置任何值。
public function fromUser(JWTSubject $user)
{
return $this->fromSubject($user);
}
...
public function fromSubject(JWTSubject $subject)
{
$payload = $this->makePayload($subject);
return $this->manager->encode($payload)->get();
}
在这里你可以看到 fromSubject()
实际上是 returns 有效负载。所以 fromUser()
的返回结果实际上应该包含你正在寻找的有效载荷,虽然我不确定这一点,因为我无法测试。
希望对您有所帮助:)