最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

最近接手的B端項目選擇了vue來做,此項目使用element ui Message等為組件 望周知

需求

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

此次B端SPA項目把ak存在localstorage中

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

//router.js
router.beforeEach((to, from, next) => {
 // 若userkey不存在并且前往頁面不是登陸頁面,進入登陸
 // 若userkey存在并且前往登陸頁面,進入主頁
 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

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

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

需求

若ak失效后發(fā)送請求時彈出失效彈出框返回到登陸頁面

以下做了個簡單的例子若請求返回的參數(shù)帶0則登陸失效

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

需求

手動登出

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

   })
  }

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

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

相關(guān)文章

  • 使用vue-markdown實現(xiàn)markdown文件預(yù)覽

    使用vue-markdown實現(xiàn)markdown文件預(yù)覽

    Vue-Markdown 是一個輕量級且高效的庫,用于在Vue.js應(yīng)用程序中渲染Markdown文本,下面我們來看看如何使用vue-markdown實現(xiàn)markdown文件預(yù)覽效果吧
    2025-04-04
  • Vue2.0 實現(xiàn)頁面緩存和不緩存的方式

    Vue2.0 實現(xiàn)頁面緩存和不緩存的方式

    今天小編就為大家分享一篇Vue2.0 實現(xiàn)頁面緩存和不緩存的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue+Django項目部署詳解

    Vue+Django項目部署詳解

    這篇文章主要介紹了Vue+Django項目部署詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue 添加和編輯用同一個表單,el-form表單提交后清空表單數(shù)據(jù)操作

    vue 添加和編輯用同一個表單,el-form表單提交后清空表單數(shù)據(jù)操作

    這篇文章主要介紹了vue 添加和編輯用同一個表單,el-form表單提交后清空表單數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 頁面內(nèi)錨點定位及跳轉(zhuǎn)方法總結(jié)(推薦)

    頁面內(nèi)錨點定位及跳轉(zhuǎn)方法總結(jié)(推薦)

    這篇文章主要介紹了頁面內(nèi)錨點定位及跳轉(zhuǎn)方法總結(jié),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue實現(xiàn)鼠標(biāo)懸浮框效果

    vue實現(xiàn)鼠標(biāo)懸浮框效果

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)鼠標(biāo)懸浮框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue-cli2 構(gòu)建速度優(yōu)化的實現(xiàn)方法

    vue-cli2 構(gòu)建速度優(yōu)化的實現(xiàn)方法

    這篇文章主要介紹了vue-cli2 構(gòu)建速度優(yōu)化的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • vue使用recorder.js實現(xiàn)錄音功能

    vue使用recorder.js實現(xiàn)錄音功能

    這篇文章主要為大家詳細(xì)介紹了vue使用recorder.js實現(xiàn)錄音功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • vue解決跨域問題的方法

    vue解決跨域問題的方法

    本文主要介紹了前后端分離項目中的跨域問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • vue中v-bind與v-model的區(qū)別舉例詳解

    vue中v-bind與v-model的區(qū)別舉例詳解

    這篇文章主要給大家介紹了關(guān)于vue中v-bind與v-model區(qū)別的相關(guān)資料,v-model和v-bind是Vue.js框架中的兩個常用指令,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09

最新評論

安国市| 和田县| 东乡族自治县| 濉溪县| 辽宁省| 神农架林区| 全椒县| 喜德县| 遵义市| 嵩明县| 金阳县| 梅州市| 合川市| 青神县| 富平县| 尼玛县| 乐山市| 河源市| 井冈山市| 琼结县| 班戈县| 始兴县| 尚志市| 乳山市| 吉林省| 武功县| 翁源县| 铁岭县| 施甸县| 固镇县| 方山县| 怀集县| 新营市| 高青县| 廊坊市| 泸水县| 上高县| 赤峰市| 武冈市| 澎湖县| 宁河县|