php-open-source-saver/jwt-auth登录错误



当我尝试登录时,我得到以下错误,我找不到问题在哪里。我使用lumen 9与php 8.1。

<!-- LcobucciJWTTokenBuilder::relatedTo(): Argument #1 ($subject) must be of type string, null given, called in /home/ss20nt22/public_html/wms/vendor/php-open-source-saver/jwt-auth/src/Providers/JWT/Lcobucci.php on line 212 (500 Internal Server Error) -->
下面是我的函数:
public function login(Request $request)
{

$this->validate($request, [
'nume' => 'required|string',
'password' => 'required|string',
]);
$credentials = $request->only(['nume', 'password']);
if (!$token = Auth::attempt($credentials)) {
// Login has failed
return response()->json(['message' => 'Unauthorized'], 401);
}
return $this->respondWithToken($token);
}

如果有人在laravel 9及以上版本中有相同的问题,但确定JWT_SECRET存在于。env文件中,您的问题可能是在迁移和模型之间的主键id不相同。

当您使用自定义id名称进行迁移时:

$table->id('user_id');

然后像这样在User Model中注册:

protected $primaryKey = "user_id";

在configjwt.php文件中更改

"jwt"=比;Tymon JWTAuth JWT Lcobucci提供者::类,来"jwt"=比;Tymon JWTAuth JWT Namshi提供者::类

我解决了这个问题,我卸载了这个包,并从这里的文档中重新安装了它。

https://jwt-auth.readthedocs.io/en/develop/laravel-installation/

在lumen的情况下,按照下面的文档执行相同的步骤。

https://jwt-auth.readthedocs.io/en/develop/lumen-installation/

步骤:

卸载包

从。env或其他地方删除JWT_SECRET

如果可能的话,删除文件

配置/jwt.php

清除所有流明缓存

停止web服务

按照链接

中的安装说明操作https://jwt-auth.readthedocs.io/en/develop/lumen-installation/

回想一下我在php 8中使用的Laravel 8

我通过运行php artisan config:cache修复了它。这个命令缓存您的配置。这对我很有帮助,因为我注意到环境变量有时没有时间加载到动态配置中。

为了以防万一,确保通过运行php artisan jwt:secret

生成密钥

相关内容

  • 没有找到相关文章

最新更新