2017-02-20 54 views
2

我得到了令牌,它存儲在vue狀態和local.storage中。 如何在auth後和獲取令牌後創建重定向?如何在auth用戶vue.js之後創建重定向?

此刻我有這個代碼,它的重定向,但獲取令牌重定向後不會發生,也沒有檢查令牌。

我需要檢查令牌並重定向到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() 
    } 
}) 

回答

0

一般來說它應該工作這樣的:

  • 用戶輸入登錄/傳遞
  • vuex動作userLogin燒製
  • userLogin動作將數據發送到服務器,服務器返回令牌
  • userLogin動作將令牌保存到localStorage
  • userLogin承諾突變USER_LOGIN與令牌和/或用戶憑據

然後進行自動登錄與應用程序保存令牌(瀏覽器關閉後,等)

  • 開始你應該叫userLoginLocal vuex行動
  • userLoginLocal讀取localStorage
  • userLoginLocal令牌應該驗證令牌和/或發送到服務器進行驗證
  • userLoginLocal承諾突變USER_LOGIN與令牌和/或用戶憑證(如果令牌是有效的)

注: 突變USER_LOGIN使得isLoggedIn = true

+0

好的,謝謝!但我決定,像這樣:'router.beforeEach((to,from,next)=> {to.matched.some(record => record.meta.requiresAuth)){store.state.token === NULL){ 下({ 路徑: '/登錄', 查詢:{重定向:to.fullPath} }) }否則{ 下() } }否則{下次 () '} }) – Ooos