为了账号安全,请及时绑定邮箱和手机立即绑定

JWT 和 PHP:验证传递的令牌 (Lcobucci\JWT)

JWT 和 PHP:验证传递的令牌 (Lcobucci\JWT)

PHP
慕慕森 2021-12-24 15:45:21
我正在尝试学习如何将 JWT 令牌从 ReactJS 传递到我的 PHP API。我目前有两个功能:用于检查用户名和密码的身份验证功能,然后生成并传回令牌。生成部分似乎有效,但是当我将令牌传回授权承载中时,我无法对其进行验证。我正在使用 Lcobucci\JWT 库。这是我的代码: public function attempt_login($input){            $time = time();            $token = (new Builder())->issuedBy('https://api.example.com')            ->permittedFor('https://example.com')             ->identifiedBy('4f1g23a12aa', true)             ->issuedAt($time)             ->canOnlyBeUsedAfter($time + 60)             ->expiresAt($time + 3600)             ->withClaim('uid',1)             ->getToken();             return $token;    }    public function find($headers){        $auth = $headers['Authorization'];        if (preg_match('/Bearer\s(\S+)/', $auth, $matches)) {            $token = (new Parser())->parse((string) $matches[1]);            $data = new ValidationData();            $data->setIssuer('https://api.example.com');            $data->setAudience('https://example.com');            $data->setId('4f1g23a12aa');            dd($token->validate($data));        }else{            dd('nope');        }    }当我倾倒和死亡时,我总是会弄错。我 95% 确定我做错了,但谁能帮我解决这个问题?
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

如果您要立即检查有效性,则需要更改

canOnlyBeUsedAfter($time + 60)

简单地

canOnlyBeUsedAfter($time)

否则您需要等待 60 秒才能生效。


查看完整回答
反对 回复 2021-12-24
  • 1 回答
  • 0 关注
  • 308 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信