在Web開發中,登錄驗證攔截是一個重要的安全措施。它可以確保只有授權用戶才能訪問特定的頁面或執行特定的操作。在Vue框架中,實現登錄驗證攔截也非常簡單。
首先,我們需要一個路由攔截器。路由攔截器可以攔截每個路由,并在需要時進行登錄驗證。我們可以使用Vue Router提供的beforeEach()鉤子來實現路由攔截器。在beforeEach()函數中,我們可以檢查用戶是否已經登錄,如果沒有登錄,我們可以重定向到登錄頁面。
import router from './router' router.beforeEach((to, from, next) =>{ const isAuthenticated = localStorage.getItem('isAuthenticated') if (to.path !== '/login' && !isAuthenticated) { next('/login') } else { next() } })
在上面的代碼中,我們首先獲取localStorage中的'isAuthenticated'值。它是一個標記,表示用戶是否已登錄。如果用戶沒有登錄并且當前路由不是登錄頁面,我們就會將路由重定向到登錄頁面。
現在,我們需要編寫一個登錄頁面。登錄頁面包括一個表單,用戶可以輸入用戶名和密碼。當用戶點擊登錄按鈕時,我們需要向服務器發送一個登錄請求。如果用戶輸入的用戶名和密碼正確,服務器將返回一個認證令牌。我們需要將此令牌存儲在localStorage中,以供以后使用。
login() { const username = this.username const password = this.password axios.post('/api/login', { username, password }) .then(response =>{ const token = response.data.token localStorage.setItem('token', token) localStorage.setItem('isAuthenticated', true) this.$router.push('/') }) .catch(error =>{ console.log(error) }) }
在上面的代碼中,我們首先獲取用戶輸入的用戶名和密碼。然后,我們向服務器發送一個POST請求,傳遞用戶名和密碼。如果請求成功,我們將從服務器響應中獲取令牌,并將其存儲在localStorage中。最后,我們重定向到主頁。
現在,我們已經完成了登錄驗證攔截的實現。每當用戶訪問需要驗證的路由時,我們都會檢查localStorage中是否存在'isAuthenticated'值。如果這個值為true,用戶就會被允許訪問該路由。否則,用戶將被重定向到登錄頁面。
下一篇html漂亮公告代碼