欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue2 jwt

林玟書1年前8瀏覽0評論

JSON Web Tokens(JWT)是為了在網絡應用環境下傳遞聲明而執行的一種基于JSON的開放標準。JWT是一種基于令牌的認證機制,它可以確保用戶請求是合法的,用戶在訪問受限資源時,令牌將作為身份驗證憑據。Vue.js是一種漸進式JavaScript框架,它可以構建交互式的用戶界面。

Vue.js中有一個很好用的插件是vue-router,它提供了路由管理的功能。可以使用它來創建單頁應用,在應用中實現URL的路由管理。在前后端分離的應用中,使用其中的路由守衛可以實現前端頁面的權限控制。當用戶在Vue應用中訪問受限頁面時,服務器會驗證用戶的身份,如果用戶的身份驗證成功,服務器會將一個JWT令牌返回給前端應用。

import jwtDecode from "jwt-decode";
import VueJwtDecode from "vue-jwt-decode";
import JwtService from "@/services/jwt.service";
const state = {
errors: null,
user: {},
isAuthenticated: !!JwtService.getToken(),
decodedToken: null
};
const mutations = {
//將jwt解碼為明文對象
decodedToken(state, token) {
state.decodedToken = VueJwtDecode.decode(token);
},
//將明文對象存儲到state中
setUser(state, user) {
state.isAuthenticated = true;
state.user = user;
state.errors = {};
JwtService.saveToken(state.user.token);
},
...
}

Vue應用會將JWT令牌進行解碼,并從中提取出用戶的身份信息。在Vuex Store中可以創建一個專門存儲JWT信息的模塊,這個模塊會提供一些公共的方法,比如getToken()用來從瀏覽器緩存中取回JWT令牌,又比如saveToken(token)用來將JWT令牌存儲在瀏覽器緩存中以便下次使用。

import axios from "axios";
import JwtService from "@/services/jwt.service";
const API_URL = process.env.VUE_APP_API_URL;
class ApiService {
constructor() {
this.setHeader();    // 初始化header
}
setHeader() {
axios.defaults.headers.common[
"Authorization"
] = `Bearer ${JwtService.getToken()}`;
}
...
}
export default new ApiService();

在Vuex Store給出存儲JWT信息的模塊之后,我們還需要在Vue應用中加入一個服務層,服務層可以將所有的API請求都通過JWT令牌進行身份驗證。服務層會向后端API發送HTTP請求,并且將JWT令牌與請求頭一起發送給后端API。

在Vue.js應用中使用JWT認證可以保證應用的安全性。通過對JWT令牌的驗證,可以防止非法的訪問請求發生,同時提高了應用的安全性。開發人員可以專注于實現業務邏輯,而不用擔心用戶的安全問題。