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

nuxt 自定義 auth 中間件實現(xiàn)令牌的持久化操作

 更新時間:2020年11月05日 09:48:36   作者:xiao_fei_blog  
這篇文章主要介紹了nuxt 自定義 auth 中間件實現(xiàn)令牌的持久化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

核心點就是在process.server下,把之前存在 cookie 中的數(shù)據(jù)再用store.commit一下

auth.js

/* eslint-disable no-unused-vars */
/* eslint-disable no-useless-return */

export const TokenKey = 'Admin-token'

/**
 * 解析服務(wù)端拿到的cookie
 * @param {*} cookie
 * @param {*} key
 */
export function getCookie(cookie, key) {
 if (!cookie) return
 const arrstr = cookie.split('; ')
 for (let i = 0; i < arrstr.length; i++) {
 const temp = arrstr[i].split('=')

 if (temp[0] === key) return unescape(temp[1])
 }
}

// 登錄頁
const loginPath = '/login'
// 首頁
const indexPath = '/home'
// 路由白名單,直接繞過路由守衛(wèi)
const whiteList = [loginPath]

/**
 * @description 鑒權(quán)中間件,用于校驗登陸
 *
 */
export default async ({ store, redirect, env, route, req }) => {
 const { path, fullPath, query } = route
 const { redirect: redirectPath } = query

 // 應(yīng)對刷新 vuex狀態(tài)丟失的解決方案
 if (process.server) {
 const cookie = req.headers.cookie
 const token = getCookie(cookie, TokenKey)

 // 設(shè)置登錄狀態(tài)
 if (token) {
  store.commit('LOGIN', token) //'LOGIN' 和store中的mutations對應(yīng)起來就可以了
 }

 if (token) {
  // 已經(jīng)登錄,進來的是登錄頁,且有重定向的路徑,直接調(diào)跳到重定向的路徑
  if (path === loginPath && path !== redirectPath) {
  redirect(redirectPath)
  } else if (path === '/') {
  redirect(indexPath)
  } else {
  // 其他的已經(jīng)登錄過得直接跳過
  return
  }
 } else {
  // 鑒權(quán)白名單
  if (whiteList.includes(path)) return

  // 未登錄,進來的不是是登錄頁,全部重定向到登錄頁
  if (!path.includes(loginPath)) {
  redirect(`${loginPath}?redirect=${encodeURIComponent(fullPath)}`)
  }
 }
 }
}

補充知識:NUXT 中間件 Middleware

中間件可以使您的自定義的函數(shù)在渲染頁面之前運行

所有的中間件都必須放置在middleware/目錄下。文件名將作為中間件的名稱(如:middleware/auth將成為中間件auth)。

中間件收到上下文作為第一個參數(shù):

export default function (context) {
 context.userAgent = context.isServer ? context.req.headers['user-agent'] : navigator.userAgent
}

中間件將按照此順序在序列中執(zhí)行:

1、nuxt.config.js

2、匹配的布局

3、匹配的頁面

中間件可以是異步的,僅返回一個Promise或者使用第二個callback返回值:

middleware/stats.js

import axios from 'axios' 
export default function ({ route }) {
 return axios.post('http://my-stats-api.com', {
 url: route.fullPath
 })
}

然后,在nuxt.config.js,布局或者頁面中,配置middleware參數(shù)

nuxt.config.js

module.exports = {
 router: {
 middleware: 'stats'
 } 
}

中間件stats將在每次路由改變時被調(diào)用。

想了解中間件的例子,請移步example-auth0

以上這篇nuxt 自定義 auth 中間件實現(xiàn)令牌的持久化操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue開發(fā)公共組件之返回頂部

    vue開發(fā)公共組件之返回頂部

    這篇文章主要為大家詳細介紹了vue開發(fā)公共組件之返回頂部,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 示例vue 的keep-alive緩存功能的實現(xiàn)

    示例vue 的keep-alive緩存功能的實現(xiàn)

    這篇文章主要介紹了示例vue 的keep-alive緩存功能的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Vue的狀態(tài)管理vuex使用方法詳解

    Vue的狀態(tài)管理vuex使用方法詳解

    由于Vue多個狀態(tài)分散的跨越在許多組件和交互間各個角落,大型應(yīng)用復(fù)雜度也經(jīng)常逐漸增長。為了解決這個問題,Vue提供了vuex。本文將詳細介紹Vue狀態(tài)管理vuex,需要的朋友可以參考下
    2020-02-02
  • vue中如何動態(tài)獲取剩余區(qū)域的滾動高度

    vue中如何動態(tài)獲取剩余區(qū)域的滾動高度

    這篇文章主要介紹了vue中如何動態(tài)獲取剩余區(qū)域的滾動高度問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue2中使用axios的3種方法實例總結(jié)

    Vue2中使用axios的3種方法實例總結(jié)

    axios從功能上來說就是主要用于我們前端向后端發(fā)送請求,是基于http客戶端的promise,面向瀏覽器和nodejs,下面這篇文章主要給大家介紹了關(guān)于Vue2中使用axios的3種方法,需要的朋友可以參考下
    2022-09-09
  • vue實現(xiàn)購物車加減

    vue實現(xiàn)購物車加減

    這篇文章主要為大家詳細介紹了vue實現(xiàn)購物車加減,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • vue element中axios下載文件(后端Python)

    vue element中axios下載文件(后端Python)

    這篇文章主要介紹了vue element中axios下載文件(后端Python)的實例代碼,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • VueUse使用及造輪子選擇對比示例詳解

    VueUse使用及造輪子選擇對比示例詳解

    這篇文章主要為大家介紹了VueUse使用及造輪子選擇對比示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • vue子組件中mounted取不到props中的值情況

    vue子組件中mounted取不到props中的值情況

    這篇文章主要介紹了vue子組件中mounted取不到props中的值情況,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue :src 文件路徑錯誤問題的解決方法

    vue :src 文件路徑錯誤問題的解決方法

    這篇文章主要介紹了vue :src 文件路徑錯誤問題的簡單解決方法,本文分步驟給大家介紹的非常詳細,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05

最新評論

绥宁县| 孝义市| 汤原县| 武功县| 濉溪县| 甘孜| 普陀区| 班戈县| 同德县| 宁海县| 咸阳市| 酉阳| 祁阳县| 财经| 乐平市| 色达县| 常熟市| 那曲县| 张北县| 永吉县| 潍坊市| 江阴市| 浪卡子县| 长春市| 岳阳市| 黄骅市| 通许县| 宁远县| 仁布县| 广汉市| 郑州市| 奇台县| 乐至县| 葵青区| 兴宁市| 建瓯市| 汽车| 安顺市| 广安市| 康乐县| 扶绥县|