UNPKG

infly-libs

Version:

工具组件库

128 lines (111 loc) 2.59 kB
// TokenService.js import Uts from "./Uts"; // 假设Uts工具类在同级目录或可访问路径 let TOKEN_KEY = "accessToken"; // 默认的token键名 let CHAT_TOKEN_KEY = "chatAccessToken"; // 默认的聊天token键名 let URL_TOKEN_KEY = "accessToken"; // 链接参数带上的token键名 const TokenService = { /** * 初始化TokenService,可以配置token键名 * @param {Object} settings 一般在项目settings.js中 * @param {string} settings.tokenKey 主token的键名 * @param {string} settings.chatTokenKey 聊天token的键名 */ init(settings = {}) { if (settings.tokenKey) { TOKEN_KEY = settings.tokenKey; } if (settings.chatTokenKey) { CHAT_TOKEN_KEY = settings.chatTokenKey; } }, /** * 获取主token的键名 * @returns {string} */ getTokenKey() { return TOKEN_KEY; }, /** * 获取聊天token的键名 * @returns {string} */ getChatTokenKey() { return CHAT_TOKEN_KEY; }, /** * 获取主token * @returns {string} */ getToken() { const accessTokenKey = TokenService.getUrlTokenKey(); const accessToken = Uts.getUrlParam(accessTokenKey); // 链接中带的token return ( accessToken || Uts.storage.get(TOKEN_KEY) || Uts.getCookie(TOKEN_KEY) || "" ); }, /** * 设置主token * @param {string} token */ setToken(token) { Uts.storage.set(TOKEN_KEY, token); Uts.setCookie(TOKEN_KEY, token); }, /** * 移除主token */ removeToken() { Uts.storage.remove(TOKEN_KEY); Uts.removeCookie(TOKEN_KEY); }, /** * 设置聊天token * @param {string} token */ setChatToken(token) { Uts.storage.set(CHAT_TOKEN_KEY, token); }, /** * 获取聊天token * @returns {string} */ getChatToken() { return Uts.storage.get(CHAT_TOKEN_KEY) || ""; }, /** * 移除聊天token */ removeChatToken() { Uts.storage.remove(CHAT_TOKEN_KEY); }, /** * 获取链接中的token键名 * @returns */ getUrlTokenKey() { return URL_TOKEN_KEY; }, /** * 获取链接中的token */ getUrlToken() { return Uts.getUrlParam(URL_TOKEN_KEY); }, /** * 移除链接参数中带上的token */ removeUrlToken() { Uts.removeState(URL_TOKEN_KEY); }, /** * 移除所有token */ removeAllTokens() { this.removeToken(); this.removeChatToken(); } }; export default TokenService;