首先让我描述我要解决的问题。我有一个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,但无法正常工作。
如果需要,我会很乐意发布更多代码!
答案 0 :(得分:0)
也许这会有所帮助。当我将访问令牌存储在前端应用程序中时,我还会附加标头
axios.defaults.headers.common['Authorization'] = "Bearer " + token.data.access_token
您所有的axios请求都将使用此标头。
获取用户详细信息
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});