Jwt 身份验证问题 - 凭据无效
Posted
技术标签:
【中文标题】Jwt 身份验证问题 - 凭据无效【英文标题】:Jwt authentication problem - invalid credentials 【发布时间】:2020-04-10 01:16:26 【问题描述】:当我在 Laravel 中对创建的用户使用身份验证时,它可以工作,但是......当我更改为我的数据库时,我无法再验证它。
用户的密码是用bcrypt加密的,当做一个Hash::check()时,返回的是true,但是JWT验证总是返回我错误。
我在使用以下代码时遇到问题:
$credentials = $request->only('email', 'senha');
try
if(! $token = JWTAuth::attempt($credentials))
return response()->json(['error' => 'invalid_credentials'], 400);
catch(JWTException $e)
return response()->json(['error' => 'could_not_create_token'], 500);
return response()->json([
'access_token' => $token,
'token_type' => 'bearer',
'expires_in' => auth()->factory()->getTTL() * 60
]);
我从资源页面本身检查了一些文章,如this,而其他一些则找不到解决方案!
laravel版本是5.2!
编辑
数据库中的字段称为“电子邮件”和“senha”(pt-br 语言)。当我更改字段时,错误是一样的!
【问题讨论】:
您可能想尝试传递密码字段以尝试作为名称“密码”,即使它没有被命名,这通常是用户提供者知道哪个字段应该是哈希检查 【参考方案1】:JWTAuth::attempt($credentials)
部分将查找输入值 'email' 和 'passowrd'。
所以在凭证中你必须通过$request->only('email', 'password');
而不是$request->only('email', 'senha');
【讨论】:
数据库中的字段称为“电子邮件”和“senha”(pt-br 语言)。当我更改字段时,错误是一样的!【参考方案2】:我通过使用 Laravel 标准在银行中创建一个新表解决了这个问题。
【讨论】:
以上是关于Jwt 身份验证问题 - 凭据无效的主要内容,如果未能解决你的问题,请参考以下文章
Django Rest Framework JWT 未提供身份验证凭据
混合 JWT 和 Windows 身份验证。 jwt 失败后弹出凭据
djangorestframework-jwt 未提供身份验证凭据
Django Rest Framework JWT“未提供身份验证凭据。”
PayPal PHP SDK:由于身份验证凭据无效或缺少授权标头,身份验证失败
请求具有无效的身份验证凭据。预期的 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据 automl