我刚开始构建API,我正在使用Laravel和一些包,比如Passport。
在这个项目中,我正在创建一个API来与移动应用程序通信,并执行一些任务,如创建用户和添加一些与用户相关的信息。
我已经开始了解它是如何处理令牌的,并且我已经完成了几乎所有的工作。我唯一的问题是,例如,在我创建一个注册用户来接收令牌之前,我在移动应用程序中显示了其他信息,如新闻,以及一些不需要登录或注册的列表信息。
在我的API中,我已经准备好了这些路由,但是我不能访问这些信息,因为我需要一个令牌。
iI如何处理这种情况?当我需要访问信息时,我不能在哪里提供它?
发布于 2018-12-20 01:06:57
使用控制器从数据库中检索所需的数据,然后返回包含数据的响应,并为用户创建令牌:
...
$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);
...
})
最后将该令牌附加到需要authentication的应用编程接口路由
axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem(`${YourTokenName}.jwt`);
https://stackoverflow.com/questions/53855294
复制相似问题