首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >,检索在视图组件中使用的令牌。

,检索在视图组件中使用的令牌。
EN

Stack Overflow用户
提问于 2022-03-30 07:37:01
回答 2查看 1.6K关注 0票数 0

这是背景。我有两个网站使用相同的域名。

第一个使用Laravel和视图组件,第二个是"API",我使用Laravel。这个API只有一个用户。稍后,还会有第三个站点使用相同的API。

API认证系统运行良好。当我从邮递员切换到我的用户时,我的令牌就会被返回。

我想知道在我的第一个站点上使用vue组件的令牌检索和使用情况。

我的想法是将API用户登录凭据存储在我的.env文件中,并在我使用vue组件的控制器中检索令牌。

另一种解决方案是在每次调用API时获取我的令牌,但这可能很麻烦。

最后,将令牌存储在用户的连接上并重用它,但是在会话中将它存储在cookie中的位置,安全级别不理想。

提前谢谢你的想法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-30 07:50:55

从前端使用令牌作为承载令牌的默认操作如下

  1. 登录尝试后端,您将得到令牌,以验证您的请求稍后。
  2. 使用vuex商店在您的用户商店中存储它
  3. 然后使用该令牌执行API请求。
  4. 注销后销毁令牌

如果您关心安全性,那么令牌应该有过期时间,并且在用户注销时,令牌本身应该从后端被销毁。每次用户登录时,都会为他们创建新的令牌。

票数 0
EN

Stack Overflow用户

发布于 2022-06-13 20:03:45

如果您的API身份验证工作正常,那么每次用户登录时都必须将令牌存储在数据库上。并在其他场合删除。每次用户登录时,若要将令牌存储在数据库上,请使用以下代码:

代码语言:javascript
运行
复制
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',
    ]);
}

我从这里取了代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71673287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档