jwt refresh不会更新自定义声明

时间:2019-01-15 14:54:54

标签: php laravel jwt

这个问题已经问了很多遍,但是找不到合适的解决方案。

我这样做-$newToken = auth()->refresh();

我的自定义声明中有

 public function getJWTCustomClaims()
    {
        return [
            'is_verified' => $this->verified,
            'email' => $this->email,
            'role' => $this->getMainRole()->name
        ];
    }

场景-首先,当我登录时,它会向我返回jwt令牌。在那个jwt令牌中,我有is_verified,email和角色集。假设在我获得令牌时is_verified为0。现在,我在数据库中将其更改为1。现在,如上所示,当我刷新令牌时,返回的jwt令牌仍然具有is_verified等于0,但是应该为1。知道如何解决它吗?

1 个答案:

答案 0 :(得分:0)

试试 $newToken = auth()->refresh(false, true);

第二个参数是“重置声明”:

JWTGuard 类 - public function refresh($forceForever = false, $resetClaims = false)