1.什么是token?
token通俗的讲就是一个暗号。在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。假如我有了token,我就拥有了自己限有的权限。我的权限假如是用户身份,那我非要去访问操作管理员权限 ,那么是回被驳回的。
2.应用场景:在登录的时候保存token
因为此次项目是vue项目,所以要把值存到vuex中,使各个组件均可以访问到。
1)在store/index.js里面设置vuex
// 引入Vuex
import Vuex from 'vuex'
// 引入vue
import Vue from 'vue'
// 使用Vuex
Vue.use(Vuex)
import user from './user'
import admin from './admin'
// import message from './message'
import teacher from './teacher'
// 准备actions(操作数据之前的操作)
const actions = {}
// 准备mutations(操作数据,键值一般大写)
const mutations = {
LOGIN: function (state, value) {
console.log("mutations中的+被调用了", state, value);
state.token = value.token//修改stata里面的token
state.power=value.pow.power//修改stata里面的power
state.userInfo=value.pow//修改stata里面的userInfo
},
}
// 准备state(存放数据)
const state = {
token: '',
power: "",
userInfo:""
}
2)通过登录获取token,进行使用
Ulogin(data).then((data) => {
if(data.data){
console.log("登录", data.data);
console.log("解析", jwt_decode(data.data));
let inf = jwt_decode(data.data);
if (inf.power == 0) {
this.$router.push("user/IndexCenter");
} else if(inf.power == 1) {
this.$router.push("/teacher");
}else{
this.$router.push("/admin");
}
let res = {
token: data.data,
pow: jwt_decode(data.data),
};
this.$store.commit("LOGIN", res);
}else{
this.$message.error('密码或账户错误');
}
});
},
补充:vue可以通过jwt-decode解析token获取需要的数据。