在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ Vue導(dǎo)航守衛(wèi)無法跳轉(zhuǎn)

Vue導(dǎo)航守衛(wèi)無法跳轉(zhuǎn)

1.需求:
登錄有兩重(商戶登錄頁,用戶登錄頁):
-1- 先登錄商戶
-2- 登錄商戶成功之后,再登錄用戶
-3- 商戶第一次登錄之后以后就不需要再登錄了,直接跳轉(zhuǎn)到用戶頁面用戶登錄

2.已有代碼
商戶第一次登錄,請求http,成功之后,保存值到vuex里面

 this.axios.post('/api/user/login.do', qs.stringify({
          username: this.username,
          password: this.password,
          type: 'pos_seller'
        })).then(response => {
          if (response.data.result === 'success') {
               // this.$router.push('/login')
              let user = {};
              user.user_name = response.data.user.displayName;
              user.user_token = response.data.user.userId;
              this.setUser(user);//發(fā)送給vuex
          }
        }).catch(error => {
          console.log("error====>" + error)
        })

router里面:

router.beforeEach((to, from, next) => {
  // console.log(store.state.currentUser.UserToken); // 有值
  if (to.meta.requireAuth) {
    let token = store.state.currentUser.UserToken;
    if (token) {
      if (to.path === '/login') {
        console.log(to)
        next('/login')
      }
    }
    else {
      next({
        path: '/sellerlogin',
        query: {redirect: to.fullPath}
      })
    }
  }
  else {
    next();
  }
})

3.結(jié)果:
點(diǎn)擊商戶登錄,直接死循環(huán),并且也不能達(dá)到預(yù)期效果(localStorage里面有值,自動(dòng)跳轉(zhuǎn)到用戶登錄頁)

4.問題
-1- 上面的代碼有啥問題
-2- 一般登錄攔截是這樣做的嗎?我看到網(wǎng)上說還需要axios攔截,也就是說前端路由攔截+axios攔截?

回答
編輯回答
安于心

axios有請求前攔截,和請求后攔截,對應(yīng)著不同的攔截器,可以在任何請求前去判斷是否登錄,然后決定跳轉(zhuǎn)頁面。請求后攔截,用于對常規(guī)數(shù)據(jù)過濾,通用跳轉(zhuǎn)、根據(jù)不同的狀態(tài)碼可及對應(yīng)的業(yè)務(wù)場景,設(shè)置各種用法

2017年10月29日 16:47