You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
54 lines
1.2 KiB
/*
|
|
* @Author: ch
|
|
* @Date: 2022-05-04 20:35:20
|
|
* @LastEditors: ch
|
|
* @LastEditTime: 2022-05-07 22:33:28
|
|
* @Description: file content
|
|
*/
|
|
import { TOKEN_KEY } from "@/constants";
|
|
import { ApiGetCurrentUser } from "@/plugins/api/account";
|
|
const ONE_DAY = 86400000; // 一天的毫秒数 24 * 60 * 60 * 1000;
|
|
|
|
const state = () => ({
|
|
token: "",
|
|
userInfo: {},
|
|
});
|
|
const mutations = {
|
|
setUserInfo(state, info) {
|
|
state.userInfo = info;
|
|
},
|
|
setToken(state, token) {
|
|
state.token = token;
|
|
this.$cookies.set(TOKEN_KEY, token, {
|
|
path: "/",
|
|
maxAge: ONE_DAY,
|
|
});
|
|
},
|
|
setLoginOut(state) {
|
|
state.token = "";
|
|
state.userInfo = {};
|
|
this.$cookies.remove(TOKEN_KEY);
|
|
},
|
|
};
|
|
const actions = {
|
|
async nuxtServerInit({ state, commit, dispatch }) {
|
|
const token = this.$cookies.get(TOKEN_KEY);
|
|
if (!state.token && token) {
|
|
commit("setToken", token);
|
|
await dispatch("getUserInfo");
|
|
}
|
|
},
|
|
async getUserInfo({ commit }) {
|
|
const { result } = await ApiGetCurrentUser();
|
|
if (result) {
|
|
commit("setUserInfo", result);
|
|
}
|
|
},
|
|
loginOut({ commit }) {
|
|
commit("setLoginOut");
|
|
// 此处请求接口
|
|
},
|
|
};
|
|
|
|
export { state, mutations, actions };
|