欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue實(shí)現(xiàn)登陸登出的實(shí)現(xiàn)示例

 更新時(shí)間:2017年09月15日 10:23:46   作者:AkiraSun  
本篇文章主要介紹了vue實(shí)現(xiàn)登陸登出的實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

最近接手的B端項(xiàng)目選擇了vue來(lái)做,此項(xiàng)目使用element ui Message等為組件 望周知

需求

  • 登陸成功后跳轉(zhuǎn)至首頁(yè)
  • 首頁(yè)不能手動(dòng)跳轉(zhuǎn)至登陸頁(yè)
  • 登陸后跳轉(zhuǎn)至目標(biāo)頁(yè)面

此次B端SPA項(xiàng)目把a(bǔ)k存在localstorage中

1.登陸的跳轉(zhuǎn)利用全局鉤子router.beforeEach

//router.js
router.beforeEach((to, from, next) => {
 // 若userkey不存在并且前往頁(yè)面不是登陸頁(yè)面,進(jìn)入登陸
 // 若userkey存在并且前往登陸頁(yè)面,進(jìn)入主頁(yè)
 const userKey = localStorage.getItem('userKey')
 if (!userKey && to.path !== '/login') {
  next({
   path: '/login',
   query: { redirect: to.fullPath }
  })
 } else if (userKey && to.path === '/login') {
  next({ path: '/' })
 } else {
  next()
 }
})

上面使用了query帶上目標(biāo)參數(shù)

例子:#/login?redirect=%2Fapp

在登陸提交處還得對(duì)redirect參數(shù)進(jìn)行處理

//若驗(yàn)證成功跳轉(zhuǎn)
 var redirect = decodeURIComponent(this.$route.query.redirect || '/')
     self.$router.push({
      // 你需要接受路由的參數(shù)再跳轉(zhuǎn)
      path: redirect
     })

需求

若ak失效后發(fā)送請(qǐng)求時(shí)彈出失效彈出框返回到登陸頁(yè)面

以下做了個(gè)簡(jiǎn)單的例子若請(qǐng)求返回的參數(shù)帶0則登陸失效

// respone攔截器
axios.interceptors.response.use(
 response => {
  console.log(response)
  const data = response.data
  if (data.status === 0) {
   MessageBox.alert('你已被登出,可以取消繼續(xù)留在該頁(yè)面,或者重新登錄', '確定登出', {
    confirmButtonText: '確定',
    type: 'warning'
   }).then(() => {
    localStorage.clear()
    router.replace({
     path: '/login'
    })
    return
   }).catch(() => {
    localStorage.clear()
    router.replace({
     path: '/login'
    })
   })
  } else {
   return response
  }
 },
 error => {
  if (error && error.response) {
   switch (error.response.status) {
    case 400:
     error.message = '請(qǐng)求錯(cuò)誤'
     break
    case 401:
     error.message = '未授權(quán),請(qǐng)登錄'
     break
    case 403:
     error.message = '拒絕訪問(wèn)'
     break
    case 404:
     error.message = (process.env.NODE_ENV === 'production' ? `請(qǐng)求地址出錯(cuò)` : `請(qǐng)求地址出錯(cuò): ${error.response.config.url}`)
     break
    case 408:
     error.message = '請(qǐng)求超時(shí)'
     break
    case 500:
     error.message = '服務(wù)器內(nèi)部錯(cuò)誤'
     break
    case 501:
     error.message = '服務(wù)未實(shí)現(xiàn)'
     break
    case 502:
     error.message = '網(wǎng)關(guān)錯(cuò)誤'
     break
    case 503:
     error.message = '服務(wù)不可用'
     break
    case 504:
     error.message = '網(wǎng)關(guān)超時(shí)'
     break
    case 505:
     error.message = 'HTTP版本不受支持'
     break
    default:
   }
   Message({
    message: error.message,
    type: 'error',
    duration: 5 * 1000
   })
  }
  return Promise.reject(error)
 }
)

需求

手動(dòng)登出

 loginOut() {
   var self = this
   this.$confirm('您確定要退出嗎?', '退出管理平臺(tái)', {
    confirmButtonText: '確定',
    cancelButtonText: '取消'
   }).then(() => {
    const info = {
     'userkey': localStorage.getItem('userKey')
    }
    self.$store.dispatch('LogOut', info).then(() => {
     self.$router.push({ path: '/login' })
    }).catch(() => {
    })
   }).catch(() => {

   })
  }

簡(jiǎn)單的登陸登出結(jié)束啦~

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue控制多行文字展開(kāi)收起的實(shí)現(xiàn)示例

    vue控制多行文字展開(kāi)收起的實(shí)現(xiàn)示例

    這篇文章主要介紹了vue控制多行文字展開(kāi)收起的實(shí)現(xiàn)示例(也叫控制文字展開(kāi)隱藏),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 深入學(xué)習(xí)Vue nextTick的用法及原理

    深入學(xué)習(xí)Vue nextTick的用法及原理

    這篇文章主要介紹了深入學(xué)習(xí)Vue nextTick的用法及原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • vue?parseHTML函數(shù)源碼解析start鉤子函數(shù)

    vue?parseHTML函數(shù)源碼解析start鉤子函數(shù)

    這篇文章主要為大家介紹了vue?parseHTML函數(shù)源碼解析start鉤子函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue中插槽Slot基本使用與具名插槽詳解

    Vue中插槽Slot基本使用與具名插槽詳解

    有時(shí)候我們希望在指定的位置輸出我們的子元素,這時(shí)候具名插槽就排上了用場(chǎng),這篇文章主要給大家介紹了關(guān)于Vue中插槽Slot基本使用與具名插槽的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • vue實(shí)現(xiàn)多級(jí)側(cè)邊欄的封裝

    vue實(shí)現(xiàn)多級(jí)側(cè)邊欄的封裝

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)多級(jí)側(cè)邊欄的封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • vue中axios的post請(qǐng)求,415錯(cuò)誤的問(wèn)題

    vue中axios的post請(qǐng)求,415錯(cuò)誤的問(wèn)題

    這篇文章主要介紹了vue中axios的post請(qǐng)求,415錯(cuò)誤的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue.js如何利用v-for循環(huán)生成動(dòng)態(tài)標(biāo)簽

    Vue.js如何利用v-for循環(huán)生成動(dòng)態(tài)標(biāo)簽

    這篇文章主要給大家介紹了關(guān)于Vue.js如何利用v-for循環(huán)生成動(dòng)態(tài)標(biāo)簽的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 解決vue頁(yè)面DOM操作不生效的問(wèn)題

    解決vue頁(yè)面DOM操作不生效的問(wèn)題

    下面小編就為大家分享一篇解決vue頁(yè)面DOM操作不生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • vue常用知識(shí)點(diǎn)整理

    vue常用知識(shí)點(diǎn)整理

    Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式JavaScript框架。這篇文章整理了vue中的常用知識(shí)點(diǎn),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • elementUI?el-table二次封裝的詳細(xì)實(shí)例

    elementUI?el-table二次封裝的詳細(xì)實(shí)例

    在項(xiàng)目中會(huì)多次使用表格展示數(shù)據(jù),不對(duì)這個(gè)table進(jìn)行二次封裝成我們自己想要的,重復(fù)的代碼量的工作會(huì)比較大,下面這篇文章主要給大家介紹了關(guān)于elementUI?el-table二次封裝的相關(guān)資料,需要的朋友可以參考下
    2023-03-03

最新評(píng)論