需求:不允許token暴漏在位址列
- 拿到token放到 sessionStorage裡面 並重新重新整理地址
- 所有統一使用query的頁面就直接替換為sessionStorage
router.beforeEach((to, from, next) => {
// ... 其他程式碼 ...
// 檢查是否有 token 引數
if (to.query.token) {
// 儲存 token 到
sessionStorage sessionStorage.setItem('token', to.query.token);
// 使用 Vue Router 的 replace 方法來更新 URL
// 這裡我們建立一個新的路由物件,刪除 token 引數
const newQuery = { ...to.query };
delete newQuery.token;
// 刪除 token 引數
router.replace({ ...to, query: newQuery })
.catch(err => {
console.error('Error while navigating:', err);
}); } // 設定 store 中的 token store.state.login.token = sessionStorage.getItem('token') || '';
// ... 其他程式碼 ... // 呼叫
next()
以繼續導航 next();
});