隨著現代網站的流行,前端框架在開發中的應用越來越廣泛。Vue.js 是一個流行的 JavaScript 框架,它可以方便地構建單頁面 Web 應用程序。
在開發 Web 應用時,通常需要使用驗證機制確保用戶只能訪問其有權訪問的數據。為此,我們需要讓用戶先進行身份驗證,然后再為用戶分配訪問令牌。為了避免 CSRF 攻擊,我們使用 CSRF 令牌作為額外的安全層。
// 每個請求都必須攜帶 CSRF 令牌 axios.defaults.headers.common['X-CSRF-TOKEN'] = token;
由于訪問令牌通常具有短暫的生命周期,因此我們需要使用刷新令牌來更新令牌的有效性。當刷新令牌過期時,我們需要在用戶必須重新進行身份驗證之前重新登錄。
// 此處示例為使用 JWT 進行身份驗證 axios.interceptors.response.use( response =>{ return response; }, error =>{ const originalRequest = error.config; if (error.response.status === 401 && !originalRequest._retry) { originalRequest._retry = true; return axios.post('/auth/refresh_token', { token: localStorage.getItem('refresh_token') }) .then(response =>{ if (response.status === 200) { localStorage.setItem('access_token', response.data.accessToken); return axios(originalRequest); } }); } return Promise.reject(error); } );
上述示例中,我們添加了一個攔截器,以在訪問受保護的資源時自動嘗試刷新令牌。如果刷新令牌失敗,我們將用戶重定向到登錄頁面以重新進行身份驗證。
在使用 Vue.js 開發 Web 應用程序時,請確保遵循上述最佳實踐,以確保您的應用程序在用戶訪問受保護的資源時保持安全。