如何使用 Laravel Passport 访问令牌

Posted

技术标签:

【中文标题】如何使用 Laravel Passport 访问令牌【英文标题】:How to use Laravel Passport access tokens 【发布时间】:2019-06-09 15:22:06 【问题描述】:

首先让我描述一下我要解决的问题。我有一个 Laravel 后端项目,我想将其转换为 API,看起来 Laravel Passport 非常适合这个。因此,我将 Laravel Passport 安装到我的项目中。

我有一个客户端应用程序需要通过 axios 使用此 API。我想要做的是使用我的用户名和密码向 API 发出发布请求以获取access token,然后使用此访问令牌获取或发布相关数据。访问令牌由以下代码创建

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['token']);
        // return response()->json(['success' => $success], 200);
     else 
        return response()->json(['error' => 'Unauthorised'], 401);
    

我的应用程序存储访问令牌。我是否认为我的应用程序现在可以使用此访问令牌来访问我登录时使用的用户的数据?如果是这样,我该怎么做?我曾尝试使用this,但无法成功。

如果需要,我很乐意发布更多代码!

【问题讨论】:

【参考方案1】:

也许这会有所帮助。当我将访问令牌存储在我的前端应用程序上时,我还附加了标题

axios.defaults.headers.common['Authorization'] = "Bearer " + token.data.access_token

你所有的 axios 请求都会使用这个 header。

获取用户详细信息

Route::middleware('auth:api')->get('/user', function (Request $request) 
    return $request->user();
);

【讨论】:

以上是关于如何使用 Laravel Passport 访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

使用 Passport 和 Laravel 进行身份验证时返回访问令牌和用户

Laravel 5.3 Passport API 在 Postman 中使用个人访问令牌未经身份验证

如何从 Laravel Passport 中的刷新令牌中获取 id?

了解 Laravel Passport 刷新令牌

Laravel 通过 Passport 实现 API 请求认证:沙箱测试篇(私人访问令牌)

Laravel Passport 客户端的 user_id 为 null