1. 程式人生 > 其它 >公共資料集採集-axios獲取cookie中的session值

公共資料集採集-axios獲取cookie中的session值

1

/*獲取指定名稱的cookie值*/ 
export function getCookieValue(name) {
  let result = document.cookie.match(
    "(^|[^;]+)\\s*" + name + "\\s*=\\s*([^;]+)"
  );
  return result ? result.pop() : "";
}

2

 const session = getCookieValue("session");
            console.log('session',session);

3如果需要前端把session存入cookie,可參考下面請求頭配置token的程式碼,我這裡是後端直接存入

後臺除了登入介面之外,都需要token許可權驗證,我們可以通過新增axios請求攔截器來新增token,以保證擁有獲取資料的許可權

在main.js中新增程式碼,在將axios掛載到vue原型之前新增下面的程式碼

\```

//請求在到達伺服器之前,先會呼叫use中的這個回撥函式來新增請求頭資訊

axios.interceptors.request.use(config=>{

//為請求頭物件,新增token驗證的Authorization欄位

config.headers.Authorization = window.sessionStorage.getItem("token")

return config

})

4掛載路由導航守衛

ps:可以在跳轉前執行操作
import { Dialog } from 'element-ui';
根據session:

 // 驗證session
      router.beforeEach((to, from, next) => {
        const session = getCookieValue("session");
        if (!session && to.name !== 'login') {
          window.alert("登入已過期!")
          
          next({ name: 'login' }) 
        } else {
          next()
        }
      })

根據token

router.beforeEach((to,from,next)=>{

if(to.path === '/login')

return next();

//獲取token

const tokenStr = window.sessionStorage.getItem('token');

if(!tokenStr)

return next('/login');

next();

})

export default router