首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证和路由器重定向

验证和路由器重定向
EN

Stack Overflow用户
提问于 2017-10-27 13:49:26
回答 1查看 983关注 0票数 0

我使用vue-authenticate (https://github.com/dgrubelic/vue-authenticate)使用ID/密码和Oauth 1& 2登录。

我把路由器重定向到仪表板页面上重定向用户的位置?

代码语言:javascript
复制
this.$router.push({name: 'dashboard'})

用Vuex:编写代码store.js

代码语言:javascript
复制
import Vue from 'vue'
import Vuex from 'vuex'
import {vueAuth} from './auth'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    isAuthenticated: false
  },
  getters: {
    isAuthenticated () {
      return vueAuth.isAuthenticated()
    }
  },
  mutations: {
    isAuthenticated (state, payload) {
      state.isAuthenticated = payload.isAuthenticated
    },
    setProfile (state, payload) {
      state.profile = payload.profile
    }
  },
  actions: {
    login (context, payload) {
      payload = payload || {}
      return vueAuth.login(payload.user, payload.requestOptions).then((response) => {
        context.commit('isAuthenticated', {
          isAuthenticated: vueAuth.isAuthenticated()
        })
      })
    }
  }
})
EN

回答 1

Stack Overflow用户

发布于 2017-10-27 16:53:02

您可以在vue组件中分派操作之后使用.then(),在调度操作完成后可以使用$router.push()方法。

代码语言:javascript
复制
// SomeComponent.vue
.
.
.
methods: {
  login () {
    this.$store.dispatch('login', payload)
      .then(() => {
        this.$router.push({ name: 'dashboard' })
      })
  }
}

或者您可以在actions.js文件中使用,但我正在vue中执行$router作业

代码语言:javascript
复制
// actions.js
import Vue from 'vue'

const actions = {
  login (context, payload) {
    payload = payload || {}
    return vueAuth.login(payload.user, payload.requestOptions)
      .then((response) => {
        context.commit('isAuthenticated', {
        isAuthenticated: vueAuth.isAuthenticated()
        Vue.$router.push({ name: 'dashboard' })
      })
    })
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46976652

复制
相关文章

相似问题

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