令牌护照用户

时间:2018-12-19 16:22:46

标签: laravel laravel-5 laravel-passport

我是构建API的新手,并且正在使用Laravel和一些软件包,例如Passport。

在这个项目中,我正在创建一个API以与移动应用进行通信并执行一些任务,例如创建用户并添加一些与用户相关的信息。

我已经有了关于令牌如何工作的想法,并且我已经完成了几乎所有的工作。我唯一的问题是,例如,在创建注册用户以接收令牌之前,我在移动应用程序中呈现了其他信息,例如新闻,以及一些不需要登录或注册的列表信息。

在我的API中,我已经准备好这些路由,但是由于需要令牌,因此无法访问此信息。

我如何处理这种情况?当我需要访问信息时,在哪里不能显示信息?

1 个答案:

答案 0 :(得分:0)

使用您的控制器从数据库中检索所需的数据,然后返回包含该数据的响应并为用户创建令牌:

...
$status = 200;
$response = [
   'data'  => Your data (user info, listings, news...),
   'token' => Auth::user()->createToken("YourTokenName")->accessToken,
];

return response()->json($response, $status);

然后,您可以将该令牌存储在 localStorage 中:

axios.post('your-api-route')
.then((response) => {
   localStorage.setItem(`${"YourTokenName"}.jwt`, response.token);
   ...
})

最后将该令牌附加到需要身份验证 api路由

axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem(`${YourTokenName}.jwt`);
相关问题