【问题标题】:How to create redirect after auth user, vue.js?如何在 auth 用户 vue.js 之后创建重定向?
【发布时间】:2017-02-20 06:03:46
【问题描述】:

我得到了令牌,它存储在 vue state 和 local.storage 中。 如何在认证后和获取令牌后创建重定向?

目前我有这个代码,它的重定向,但是在获取令牌重定向之后没有发生并且没有检查令牌。

我需要检查令牌并重定向到 fullPath,请帮助!

var Auth = {
  loggedIn: false,
  login: function () { this.loggedIn = true },
  logout: function () { this.loggedIn = false }
}
router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.requiresAuth) && !Auth.loggedIn) {
    next({
      path: '/login',
      query: {redirect: '/'}
    })
  } else {
    next()
  }
})

【问题讨论】:

    标签: javascript vue.js


    【解决方案1】:

    一般来说应该是这样的:

    • 用户输入登录名/密码
    • vuex 操作 userLogin 已触发
    • userLogin action 向服务器发送数据,服务器返回令牌
    • userLogin 操作将令牌保存到 localStorage
    • userLogin 使用令牌和/或用户凭据提交突变 USER_LOGIN

    然后使用保存的令牌进行自动登录(在浏览器关闭后等)

    • 在应用启动时你应该调用userLoginLocalvuex action
    • userLoginLocallocalStorage 读取令牌
    • userLoginLocal 应该验证令牌或/并发送到服务器进行验证
    • userLoginLocal 使用令牌和/或用户凭据提交突变 USER_LOGIN(如果令牌有效)

    注意事项: 突变USER_LOGIN 使isLoggedIn = true

    【讨论】:

    • 好的,谢谢!但我决定,像这样:router.beforeEach((to, from, next) => { if (to.matched.some(record => record.meta.requiresAuth)) { if (store.state.token === null) { next({ path: '/login', query: { redirect: to.fullPath } }) } else { next() } } else { next() } })
    猜你喜欢
    • 2013-06-18
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多