| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- const { User } = require('../models');
- const tokenStore = new Map();
- async function initializeTokenStore() {
- let users = [];
- if (process.env.MODE === '1') {
- console.log('Current mode is Heroku mode.');
- let user = {
- // Common
- prefix: process.env.PREFIX,
- accessToken: process.env.ACCESS_TOKEN,
- defaultMethod: process.env.DEFAULT_METHOD,
- // WeChat public account
- wechatAppId: process.env.WECHAT_APP_ID,
- wechatAppSecret: process.env.WECHAT_APP_SECRET,
- wechatTemplateId: process.env.WECHAT_TEMPLATE_ID,
- wechatOpenId: process.env.WECHAT_OPEN_ID,
- wechatVerifyToken: process.env.WECHAT_VERIFY_TOKEN,
- // Email
- email: process.env.EMAIL,
- smtpServer: process.env.SMTP_SERVER,
- smtpUser: process.env.SMTP_USER,
- smtpPass: process.env.SMTP_PASS,
- // WeChat corporation account
- corpId: process.env.CORP_ID,
- corpAgentId: process.env.CORP_AGENT_ID,
- corpAppSecret: process.env.CORP_APP_SECRET,
- corpUserId: process.env.CORP_USER_ID,
- };
- users.push(user);
- } else {
- users = await User.findAll({
- raw: true,
- });
- }
- users.forEach((user) => {
- if (user.prefix) {
- tokenStore.set(user.prefix, {
- // Common
- accessToken: user.accessToken,
- defaultMethod: user.defaultMethod,
- // WeChat test account
- wechatAppId: user.wechatAppId,
- wechatAppSecret: user.wechatAppSecret,
- wechatTemplateId: user.wechatTemplateId,
- wechatOpenId: user.wechatOpenId,
- wechatVerifyToken: user.wechatVerifyToken,
- wechatToken: '',
- // Email
- email: user.email,
- smtpServer: user.smtpServer,
- smtpUser: user.smtpUser,
- smtpPass: user.smtpPass,
- // WeChat corporation account
- corpId: user.corpId,
- corpAgentId: user.corpAgentId,
- corpAppSecret: user.corpAppSecret,
- corpUserId: user.corpUserId,
- corpToken: '',
- });
- }
- });
- console.log('Token store initialized.');
- }
- function updateTokenStore(prefix, key, value) {
- let user = tokenStore.get(prefix);
- user[key] = value;
- tokenStore.set(prefix, user);
- }
- function getUserDefaultMethod(prefix) {
- let user = tokenStore.get(prefix);
- return user.defaultMethod;
- }
- function checkAccessToken(prefix, token) {
- let user = tokenStore.get(prefix);
- if (user.accessToken === '') {
- return true;
- } else {
- return user.accessToken === token;
- }
- }
- function checkPrefix(prefix) {
- let user = tokenStore.get(prefix);
- return user !== undefined;
- }
- function registerWebSocket(prefix, token, ws) {
- let user = tokenStore.get(prefix);
- if (user && user.accessToken === token) {
- updateTokenStore(prefix, 'ws', ws);
- } else {
- ws.terminate();
- }
- }
- module.exports = {
- initializeTokenStore,
- updateTokenStore,
- getUserDefaultMethod,
- tokenStore,
- checkAccessToken,
- checkPrefix,
- registerWebSocket,
- };
|