Jwt 身份验证错误参数 3 传递给 Lcobucci\JWT\Signer\Hmac::doVerify()

Est*_*an 26 php authentication jwt laravel

我正在做一个学习 Laravel 的项目,我看到了一些教程可以用jwt auth在这个项目上。它运行良好,但现在并不总是显示错误,但我不知道为什么。就是这个:

传递给 Lcobucci\JWT\Signer\Hmac::doVerify() 的参数 3 必须是 Lcobucci\JWT\Signer\Key 的实例,给定 null,在 C:\xampp\htdocs\inmobiliaria\vendor\lcobucci\jwt\src 中调用\Signer\BaseSigner.php 第 42 行

有时它有效,但不是另一个。所以我不知道我能做什么。我试过

  1. php工匠缓存:清除
  2. php工匠配置:清除
  3. php 工匠 jwt:秘密

但问题仍然存在,有时我会从服务器(200)那里得到很好的答案,但大部分时间都很糟糕(500)。

截图

在此处输入图片说明

在此处输入图片说明

Muh*_*man 53

这是完整的片段

php artisan key:generate
php artisan jwt:secret
php artisan cache:clear
php artisan config:clear
Run Code Online (Sandbox Code Playgroud)

在运行上述命令之前,请确保安装了 jwt 包,然后jwt.php在 config 文件夹中检查其配置文件名。


Tia*_*vêa 26

事实上,解决它是正确的:

php artisan key:generate
php artisan jwt:secret
Run Code Online (Sandbox Code Playgroud)


Dan*_*Dan 6

当以下情况时可能会发生此错误

  • JWT_SECRET上缺少.env
  • JWT_SECRET被评论在.env
  • 的值JWT_SECRET是错误的。

就我而言,运行php artisan jwt:secret它是将密钥附加到当前的JWT_SECRET. 所以检查我的.env文件, 的值JWT_SECRET非常长并且错误(应该是 64 个字符长)。

解决方法:

  1. 打开.env并删除该JWT_SECRET值(请注意,您必须删除它而不是注释它)。
  2. 跑步php artisan jwt:secret
  3. 跑步php artisan cache:clear && php artisan config:clear