当我在Laravel中对创建的用户使用auth时,它可以工作,但是...当我更改为数据库时,无法再对其进行验证。
用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语言)。当我更改字段时,错误是相同的!
答案 0 :(得分:0)
JWTAuth::attempt($credentials)
部分将查找输入值'email'和'passowrd'。
因此,您必须通过$request->only('email', 'password');
而不是$request->only('email', 'senha');
答案 1 :(得分:0)
我通过使用Laravel标准在银行中创建一个新表解决了这个问题。