gpt4 book ai didi

vue.js - 检查Axios是否具有 session cookie

转载 作者:行者123 更新时间:2023-12-03 06:45:07 25 4
gpt4 key购买 nike

我正在为Vue.js应用程序实现导航保护,检查用户是否已登录。我认为最好的方法是询问Axios它是否具有 session cookie。像这样:

router.beforeEach((to, from, next) => {
if (Vue.axios.hasSessionCookie())
next()
else
next(false);
}
当然,除了 hasSessionCookie()不存在之外,我在文档中也没有看到类似的东西。有没有办法,也许可以扩展一下?
是的,我知道我可以将登录状态存储在VueX存储中。我认为这不是一个好主意,因为如果用户以其无限的智慧刷新页面并因此重置应用程序,则状态将重置。我想到的另一个解决方案是后端端点,如果应用程序已登录,该端点可以“询问”。但这也很la脚。

最佳答案

感谢您的所有提示。正确的解决方案如下:

  • VueX存储登录状态(简单地为 bool(boolean) 标志),导航护卫检查该登录状态
  • 当用户登录或注销时,我设置标志
  • 应用程序启动时,我在创建Vue实例之前在服务器上调用/checklogin路由。这简单地返回200或401状态码,具体取决于用户是否具有有效的 session 。然后我相应地设置VueX标志。这样,用户可以刷新浏览器,但VueX仍会知道他是否已登录。
  • Plus我添加了一个Axios拦截器来检测401错误。如果有一个,则表示 session 已过期。然后,它将VueX标志设置为false,并将用户重定向到登录页面。

  • 我在我的Medium博客上写了一篇文章,其中包含详细信息和摘要(如果有人在意)。
    https://medium.com/developer-rants/session-management-between-express-and-axios

    关于vue.js - 检查Axios是否具有 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63493650/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com