JWT auth laravel上的invalid_credentials [英] invalid_credentials on JWT auth laravel
本文介绍了JWT auth laravel上的invalid_credentials的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将laravel的jwt-auth用于auth API并编写以下代码.
I'm using jwt-auth for auth API with laravel and write following code.
我的注册API运行良好,错误,我的登录API返回invalid_credentials
错误.
为什么?
My register API working good bug my login API return invalid_credentials
error.
why?
laravel版本:5.4
laravel version: 5.4
public function login(Request $request) {
$credentials = $request->only('username', 'password');
try {
$token = JWTAuth::attempt($credentials);
if (!$token) {
return response()->json(['error' => 'invalid_credentials'], 401);
}
} catch (JWTException $e) {
return response()->json(['error' => 'could_not_create_token'], 400);
}
return response()->json(compact('token'), 200);
}
public function register(Request $request) {
$credentials = $request->only('email', 'username', 'password', 'name');
$validator = Validator::make($credentials, [
'name' => 'required|max:80',
'username' => 'required|max:80|unique:users',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6',
]);
if ($validator->fails()) {
$errors = $validator->errors();
return response()->json(['error' => array(
'name' => $errors->first('name'),
'email' => $errors->first('email'),
'username' => $errors->first('username'),
'password' => bcrypt('password'),
)], 400);
}
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'username' => $request->username,
'password' => $request->password,
]);
$token = JWTAuth::fromUser($user);
return response()->json(compact('token'));
}
推荐答案
我尝试使用任何解决方案都无法正常工作,然后再次检查我的代码并在我的代码中发现错误.我正在验证中使用bcrypt,而在用户创建时什么也没有.更正了这个问题,它对我有用.
I try any solution and not working and again check my code and find a bug in my code. I'm doing bcrypt in validation and nothing on user create. Corrected this and it working for me.
public function login(Request $request) {
$credentials = $request->only('username', 'password');
try {
$token = JWTAuth::attempt($credentials);
if (!$token) {
return response()->json(['error' => 'invalid_credentials'], 401);
}
} catch (JWTException $e) {
return response()->json(['error' => 'could_not_create_token'], 400);
}
return response()->json(compact('token'), 200);
}
public function register(Request $request) {
$credentials = $request->only('email', 'username', 'password', 'name');
$validator = Validator::make($credentials, [
'name' => 'required|max:80',
'username' => 'required|max:80|unique:users',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6',
]);
if ($validator->fails()) {
$errors = $validator->errors();
return response()->json(['error' => array(
'name' => $errors->first('name'),
'email' => $errors->first('email'),
'username' => $errors->first('username'),
'password' => $errors->first('password'),
)], 400);
}
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'username' => $request->username,
'password' => bcrypt($request->password),
]);
$token = JWTAuth::fromUser($user);
return response()->json(compact('token'));
}
这篇关于JWT auth laravel上的invalid_credentials的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文