diff --git a/admin-web/src/utils/cache.js b/admin-web/src/utils/cache.js new file mode 100644 index 000000000..3d44cc8ca --- /dev/null +++ b/admin-web/src/utils/cache.js @@ -0,0 +1,42 @@ +/* eslint-disable */ + +// localStorage 操作 + +const cacheKeys = { + accessTokenKey: 'accessToken', + refreshTokenKey: 'refreshToken', +}; + +/// +/// 设置 loginToken,分为 accessToken 和 refreshToken + +export function setLoginToken(accessToken, refreshToken) { + setLocalStorage(cacheKeys.accessTokenKey, accessToken); + setLocalStorage(cacheKeys.refreshTokenKey, refreshToken); +} + +export function getLoginToken() { + const res = {}; + cacheKeys[cacheKeys.accessTokenKey] = getLocalStorage(cacheKeys.accessTokenKey); + cacheKeys[cacheKeys.refreshTokenKey] = getLocalStorage(cacheKeys.refreshTokenKey); + return res; +} + +/// +/// 设置 localStorage 公共方法 + +function setLocalStorage(key, value) { + try { + localStorage.setItem(key, value); + } catch (e) { + throw new Error(`localStorage 设置错误! ${e}`); + } +} + +function getLocalStorage(key) { + try { + return localStorage.getItem(key); + } catch (e) { + throw new Error(`localStorage 获取错误! ${e}`); + } +} diff --git a/admin-web/src/utils/request.js b/admin-web/src/utils/request.js index 78aa4635c..9401d1ec3 100644 --- a/admin-web/src/utils/request.js +++ b/admin-web/src/utils/request.js @@ -3,6 +3,7 @@ import { notification } from 'antd'; import router from 'umi/router'; import hash from 'hash.js'; import { isAntdPro } from './utils'; +import { getLoginToken } from './cache'; const codeMessage = { 200: '服务器成功返回请求的数据。', @@ -82,6 +83,7 @@ export default function request(url, option) { const defaultOptions = { credentials: 'include', }; + const newOptions = { ...defaultOptions, ...options }; if ( newOptions.method === 'POST' || @@ -104,6 +106,10 @@ export default function request(url, option) { } } + // 将登陆的 accessToken 放到 header + const loginToken = getLoginToken(); + newOptions.headers.Authorization = loginToken.accessToken; + const expirys = options.expirys && 60; // options.expirys !== false, return the cache, if (options.expirys !== false) {