From 19e11af75887f59eccec72524b968bdf29665bba Mon Sep 17 00:00:00 2001 From: smallchill Date: Thu, 30 Mar 2023 15:33:09 +0800 Subject: [PATCH] :zap: user token --- src/mixins/index.js | 8 ++++---- src/store/modules/user.js | 31 ++++++++++++++++++------------- src/utils/auth.js | 33 +++++++++++++++++++++++---------- 3 files changed, 45 insertions(+), 27 deletions(-) diff --git a/src/mixins/index.js b/src/mixins/index.js index 921e886..64aeac9 100644 --- a/src/mixins/index.js +++ b/src/mixins/index.js @@ -14,7 +14,7 @@ export default { this.refreshToken(); }, methods: { - // 10分钟检测一次token + //实时检测刷新token refreshToken () { this.refreshTime = setInterval(() => { const token = getStore({ @@ -22,8 +22,8 @@ export default { debug: true }) || {}; let date1 = this.$dayjs(token.datetime); - let date2 = this.$dayjs() - const date = date1.diff(date2, 'month') + let date2 = this.$dayjs(); + const date = date1.diff(date2, 'month'); if (validatenull(date)) return; if (date >= this.website.tokenTime && !this.refreshLock) { this.refreshLock = true; @@ -39,4 +39,4 @@ export default { }, 1000); } } -} \ No newline at end of file +} diff --git a/src/store/modules/user.js b/src/store/modules/user.js index bed71f6..fe801ee 100755 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,4 +1,4 @@ -import { setToken, removeToken } from 'utils/auth' +import { setToken, setRefreshToken, removeToken, removeRefreshToken } from 'utils/auth' import { setStore, getStore } from 'utils/store' import { validatenull } from 'utils/validate' import { deepClone } from 'utils/util' @@ -121,13 +121,15 @@ const user = { return new Promise((resolve, reject) => { logout().then(() => { commit('SET_TOKEN', '') - commit('SET_MENUALL_NULL', []); + commit('SET_MENU_ALL_NULL', []); commit('SET_MENU', []) commit('SET_ROLES', []) commit('DEL_ALL_TAG', []); commit('CLEAR_LOCK'); - removeToken() - resolve() + removeToken(); + removeRefreshToken(); + removeToken(); + resolve(); }).catch(error => { reject(error) }) @@ -137,13 +139,15 @@ const user = { FedLogOut ({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') - commit('SET_MENUALL_NULL', []); + commit('SET_MENU_ALL_NULL', []); commit('SET_MENU', []) commit('SET_ROLES', []) commit('DEL_ALL_TAG', []); commit('CLEAR_LOCK'); - removeToken() - resolve() + removeToken(); + removeRefreshToken(); + removeToken(); + resolve(); }) }, GetTopMenu () { @@ -185,6 +189,7 @@ const user = { setStore({ name: 'token', content: state.token }) }, SET_REFRESH_TOKEN: (state, token) => { + setRefreshToken(refreshToken) state.refreshToken = token; setStore({ name: 'refreshToken', content: state.token }) }, @@ -205,8 +210,8 @@ const user = { SET_MENU_ALL: (state, menuAll) => { let menu = state.menuAll; menuAll.forEach(ele => { - let index = menu.findIndex(item => item.path == ele.path) - if (index == -1) { + let index = menu.findIndex(item => item.path === ele.path) + if (index === -1) { menu.push(ele); } else { menu[index] = ele; @@ -215,7 +220,7 @@ const user = { state.menuAll = menu setStore({ name: 'menuAll', content: state.menuAll }) }, - SET_MENUALL_NULL: (state) => { + SET_MENU_ALL_NULL: (state) => { state.menuAll = [] setStore({ name: 'menuAll', content: state.menuAll }) }, @@ -231,10 +236,10 @@ const user = { function getCode (list) { list.forEach(ele => { if (typeof (ele) === 'object') { - const chiildren = ele.children; + const children = ele.children; const code = ele.code; - if (chiildren) { - getCode(chiildren) + if (children) { + getCode(children) } else { result.push(code); } diff --git a/src/utils/auth.js b/src/utils/auth.js index b91f57c..e504d55 100755 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -1,15 +1,28 @@ import Cookies from 'js-cookie' -import website from '@/config/website' -const Authorization = website.tokenHeader -var inFifteenMinutes = new Date(new Date().getTime() + website.tokenTime * 1000); -export function getToken () { - return Cookies.get(Authorization) + +const TokenKey = 'saber3-access-token' +const RefreshTokenKey = 'saber3-refresh-token' + +export function getToken() { + return Cookies.get(TokenKey) } -export function setToken (token) { - return Cookies.set(Authorization, token, { expires: inFifteenMinutes }) +export function setToken(token) { + return Cookies.set(TokenKey, token) } -export function removeToken () { - return Cookies.remove(Authorization) -} \ No newline at end of file +export function getRefreshToken() { + return Cookies.get(RefreshTokenKey) +} + +export function setRefreshToken(token) { + return Cookies.set(RefreshTokenKey, token) +} + +export function removeToken() { + return Cookies.remove(TokenKey) +} + +export function removeRefreshToken() { + return Cookies.remove(RefreshTokenKey) +}