在我使用护照注册用户并在数据库中查看该用户后。 我尝试登录,但收到消息“未经授权”。 这是我的登录方法:
public function login(){
if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')->accessToken;
return response()->json(['success' => $success], $this->successStatus);
}
else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
我也尝试在登录方法中接收请求作为参数并处理它,但我仍然没有登录。
I'm using Postman to perform the request
[更新]
我检查了我的 request() 正在接收 null
最佳答案
您可以将这些参数作为 JSON
数据添加到请求正文中,如下所示
{
"email":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7c08190f083c111d1510521f1311" rel="noreferrer noopener nofollow">[email protected]</a>",
"password":"123456"
}
还将 Content-Type:application/json
添加到您的请求 header 。
然后需要对 login()
方法进行一些更改以接受收到的 JSON
数据
public function login(Request $request){
if(Auth::attempt(['email' => $request->json('email'), 'password' => $request->json('password')])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')->accessToken;
return response()->json(['success' => $success], $this->successStatus);
}
else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
响应:-
{
"success": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjAzZDA1YzRiMmRhNTc3YmQ4ZTliMTRlZjE3MWRlYWIyOTI2NTJjNjg2MDY2ZmU1ZjYzM2ZiZjBjNTc3YTM0MGM1NDUxOTczZTYxZmFjMjIzIn0.eyJhdWQiOiIxIiwianRpIjoiMDNkMDVjNGIyZGE1NzdiZDhlOWIxNGVmMTcxZGVhYjI5MjY1MmM2ODYwNjZmZTVmNjMzZmJmMGM1NzdhMzQwYzU0NTE5NzNlNjFmYWMyMjMiLCJpYXQiOjE1MTExMDcwNzAsIm5iZiI6MTUxMTEwNzA3MCwiZXhwIjoxNTQyNjQzMDcwLCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.GrFth1I7PnkT7FOSQkkUEl0uc3CddUVEAgMHwFlKIIiC740B-Eu3-73IrYEH-VYXeWrZKP9FaK2lL_QR7wpZXnP20e5q4OoznVg0kqE5DsfsFw8lywUtPF7so4QcxcU3wFUKWGl4nEDTaiAJtU4UJnBcaG6Xj98jqEsGIkY9fboOI2bpbQvWPeI3k6kg1V3zE6M34tI-5s9d691NCprrPtlcBGD0sGsHwaP7Yv6j27MD3qSUboj-2KGZMtPl2ITTbTq8MSX-oJ5z-ASPlugDuF0NN-1Ru6FLW2CzFzAFh1ixVd6o0PnlK1Ep5qO6SN8_xida_lhgVqakArR_QLpyQAk0AuIixKzwnxCAaWfhE6Ljp-8sbhKY3sDawe-g05LOvxiyTgzqKBn9u_qCbkOm7e21eBbt1Pr0JKbu8_Rc5Mun-QnbaQiARs078xQnRfb3UJISluL6mKVdLdxwLeeJy38JJn6a_rm1xj5VLcBEW9sxEGdt4qwEJJML1qWP6KZ4ptJ2svx0ehebYtvDTvByxc9ONLYxSZ5i6X7nZdbgVgD7HrQby_HbvwTqcOiojvJxv3eDz5WMOZv8FSYo4UoDzsgRsSMs4QIeBkeNvstW28XuSoVoxzX_6i6IfQ-tFJ3SJWpyGKYlAnC61Jj5u0slKEneTiDY1pJnFAGIZqyw1_k"
}
}
请求 postman 屏幕截图:-
如果您对此有任何疑问,请在下面评论
关于php - Laravel API 护照 - 无法登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47376558/