在前后端分離的項目中,為了保障接口訪問的安全性,我們常常使用 JWT(JSON Web Token)進行身份驗證。而在 Vue 前端應用中,我們又該如何使用 JWT 來保障數據的安全性呢?
首先,我們要在 Vue 程序中向后端發送登錄請求,獲取 JWT。以下是一個簡單的示例代碼:
import axios from 'axios'
export function login (username, password) {
return axios({
method: 'post',
url: '/login',
data: {
username: username,
password: password
}
})
}
上述代碼的功能是發送一個登錄請求,其中包含用戶名和密碼,請求成功后會返回一個 JWT。接下來,我們需要將這個 JWT 保存在本地,以便后續的請求中進行身份認證。我們通常使用本地存儲(localStorage)來保存 JWT。
export function setToken (token) {
localStorage.setItem('jwt_token', token)
}
export function getToken () {
return localStorage.getItem('jwt_token')
}
接下來,我們需要在每次請求時向后端發送該 JWT,以進行身份認證。以下是一個示例代碼:
import axios from 'axios'
import { getToken } from './auth' // 引入本地存儲中的獲取 JWT 函數
const service = axios.create({
timeout: 5000,
headers: {
'Authorization': 'Bearer ' + getToken() // 在請求頭中添加 JWT
}
})
export default service
上述代碼會在請求頭中添加 JWT,每次請求都會攜帶該 JWT,而后臺則會使用這個 JWT 來進行身份認證。若該 JWT 無效,請求將被拒絕。
以上就是使用 Vue 進行 JWT 身份驗證的方法。這種方法能夠有效地保障數據和接口的訪問安全性。同時,在使用 JWT 進行身份認證時,也需要注意 JWT 的有效期問題,以防止 JWT 過期而導致認證失敗。