公共資料集採集-axios獲取cookie中的session值
阿新 • • 發佈:2021-10-25
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