php - Laravel API 护照 - 无法登录

标签 php laravel http authentication laravel-passport

在我使用护照注册用户并在数据库中查看该用户后。 我尝试登录,但收到消息“未经授权”。 这是我的登录方法:

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 屏幕截图:-

enter image description here

如果您对此有任何疑问,请在下面评论

关于php - Laravel API 护照 - 无法登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47376558/

相关文章:

php - 如何使用 Google Drive Api v3 和 php 显示文本文件的内容?

php - 调用 MediaWiki-API 时,我只得到 '+\' 作为 csrf-token

php - 是否可以使用Live-server for PHP并在保存时自动重载?

javascript - Vue.js 图表无法正常工作?

php - 在 Laravel Blade 中写 @php @endphp 而不是 <?php ?> 有什么意义?

php - 未定义索引 : Laravel

http - 缓存控制 : before public or max-age?

java - 当我什至没有部署 Web 应用程序时,为什么会看到 HttpResponseCode '200'?

java - HttpURLConnection 到 php 但没有 mysql post?

PHP 动态命名空间