为什么在 heroku 服务器上为 Laravel JWT 身份验证出现此错误

Why getting this error for Laravel JWT auth on heroku server

调用任何 api 时出现此错误:

Argument 3 passed to Lcobucci\JWT\Signer\Hmac::doVerify() must be an instance of Lcobucci\JWT\Signer\Key, null given, called in /app/vendor/lcobucci/jwt/src/Signer/BaseSigner.php on line 44

我正在使用 tymondesigns/jwt-auth 和 laravel 进行 api 身份验证。 我在生成 jwt:secret

后尝试 运行 这个 php artisan optimize

我的 laravel 应用程序托管在带有 pgsql 的基本 heroku 服务器上

您在实施 JWT 之前上传应用程序并直接重新上传而没有重新上传 .env 文件时可能会遇到此错误。

如果是这种情况,解决此问题的最简单方法是在 .env 文件中添加 JWT 密钥:

举个例子:

JWT_SECRET=jghgvfuldMpw5i4039393939393372y98bEWumqd9ls7Uk8DEpr0gIhgftrf

或使用以下命令创建 jwt 密钥:

php artisan jwt:secret

不要忘记在更改环境后清除配置:

php artisan config:clear
php artisan config:cache