UNPKG

react-app-shell

Version:

react打包脚本和example, 这里的版本请忽略

162 lines (129 loc) 3.67 kB
import store from 'store'; import jsCookies from 'js-cookie'; window.tstore = store; import appConfig from '../config/app-config'; /** * 设置本地数据, localStorage * @param key * @param value */ export const set = (key, value) => { store.set(key, value); }; /** * 获取本地数据 * @param key */ export const get = (key) => { return store.get(key); }; /** * 移除本地数据 * @param key */ export const remove = (key) => { store.remove(key); }; /** * 设置登录token, 兼容老系统 * @param userId 用户id * @param token 登录token */ export const setToken = (userId, token) => { const {userIdKey, userTokenKey, expiresDays, domain} = appConfig.cookie; store.set(userIdKey, userId); store.set(userTokenKey, token); jsCookies.set(userIdKey, userId, { expires: expiresDays, domain }); jsCookies.set(userTokenKey, token, { expires: expiresDays, domain }); }; /** * 获取登录token */ export const getToken = () => { const {userIdKey, userTokenKey, expiresDays, domain} = appConfig.cookie; const userId = store.get(userIdKey); const userStoreToken = store.get(userTokenKey); const userCookieToken = jsCookies.get(userTokenKey); // 取用户登录token const userToken = userStoreToken || userCookieToken; // store里没有 则重写一次 if (userToken && !userStoreToken) { store.set(userIdKey, userId); store.set(userTokenKey, userToken); } // cookie里没有 则重写一次 if (userToken && !userCookieToken) { jsCookies.set(userIdKey, userId, { expires: expiresDays, domain }); jsCookies.set(userTokenKey, userToken, { expires: expiresDays, domain }); } return userToken; }; /** * 获取当前登录用户的userId */ export const getUserId = () => { const {userIdKey, expiresDays, domain} = appConfig.cookie; const storeUserId = store.get(userIdKey); const cookieUserId = jsCookies.get(userIdKey); const userId = storeUserId || cookieUserId; // store里没有 则重写一次 if (userId && !storeUserId) { store.set(userIdKey, userId); } // cookie里没有 则重写一次 if (userId && !cookieUserId) { jsCookies.set(userIdKey, userId, { expires: expiresDays, domain }); } return userId; }; /** * 获取微信公众号的token * PS: 根据微信公众号内的url里的参数code, 换取的微信公众号的Token */ export const getWechatToken = () => { const {wechatTokenKey, expiresDays, domain} = appConfig.cookie; const storeToken = store.get(wechatTokenKey); const cookieToken = jsCookies.get(wechatTokenKey); // 微信公众号token const wechatToken = storeToken || cookieToken; // store里没有 则重写一次 if (wechatToken && !storeToken) { store.set(wechatTokenKey, wechatToken); } // cookie里没有 则重写一次 if (wechatToken && !cookieToken) { // 当cookie里不存在时, 重写一次 jsCookies.set(wechatTokenKey, wechatToken, { expires: expiresDays, domain }); } return wechatToken; }; /** * 清空用户token登录状态token */ export const clearToken = () => { const {userIdKey, userTokenKey, domain} = appConfig.cookie; store.remove(userIdKey); store.remove(userTokenKey); jsCookies.remove(userIdKey); jsCookies.remove(userTokenKey); jsCookies.remove(userIdKey, {domain}); jsCookies.remove(userTokenKey, {domain}); };