这是背景。我有两个网站使用相同的域名。
第一个使用Laravel和视图组件,第二个是"API",我使用Laravel。这个API只有一个用户。稍后,还会有第三个站点使用相同的API。
API认证系统运行良好。当我从邮递员切换到我的用户时,我的令牌就会被返回。
我想知道在我的第一个站点上使用vue组件的令牌检索和使用情况。
我的想法是将API用户登录凭据存储在我的.env文件中,并在我使用vue组件的控制器中检索令牌。
另一种解决方案是在每次调用API时获取我的令牌,但这可能很麻烦。
最后,将令牌存储在用户的连接上并重用它,但是在会话中将它存储在cookie中的位置,安全级别不理想。
提前谢谢你的想法。
发布于 2022-03-30 07:50:55
从前端使用令牌作为承载令牌的默认操作如下
如果您关心安全性,那么令牌应该有过期时间,并且在用户注销时,令牌本身应该从后端被销毁。每次用户登录时,都会为他们创建新的令牌。
发布于 2022-06-13 20:03:45
如果您的API身份验证工作正常,那么每次用户登录时都必须将令牌存储在数据库上。并在其他场合删除。每次用户登录时,若要将令牌存储在数据库上,请使用以下代码:
public function login(Request $request)
{
if (!Auth::attempt($request->only('email', 'password'))) {
return response()->json([
'message' => 'Invalid credential'
], 401);
}
$user = User::where('email', $request['email'])->firstOrFail();
//store the hashed token on db and return plain text token for the user
$token = $user->createToken('token_name')->plainTextToken;
return response()->json([
'access_token' => $token,
'token_type' => 'Bearer',
]);
}
我从这里取了代码
https://stackoverflow.com/questions/71673287
复制相似问题