🎉 able to login & logout

This commit is contained in:
Song
2021-01-17 14:26:33 +08:00
parent 22975603c6
commit b419c0f096
26 changed files with 729 additions and 244 deletions
+27 -21
View File
@@ -1,24 +1,30 @@
const { pushWechatMessage } = require('./wechat');
const { pushWeChatMessage } = require('./wechat');
const Message = require('../models/message').Message;
async function processMessage(userPrefix, message) {
if (message.content) {
message = await Message.create(message);
}
let result = {
success: false,
message: `unsupported message type ${message.type}`,
};
switch (message.type) {
case '0': // WeChat message
result = await pushWeChatMessage(userPrefix, message);
break;
case '1': // Email message
// TODO: Email message
break;
case '2': // HTTP GET request
// TODO: HTTP GET request
break;
default:
break;
}
return result;
}
module.exports = {
async processMessage(userPrefix, message) {
let result = {
success: false,
message: `unsupported message type ${message.type}`,
};
switch (message.type) {
case '0': // WeChat message
result = await pushWechatMessage(userPrefix, message);
break;
case '1': // Email message
// TODO: Email message
break;
case '2': // HTTP GET request
// TODO: HTTP GET request
break;
default:
break;
}
return result;
},
processMessage,
};
+1
View File
@@ -11,6 +11,7 @@ async function initializeTokenStore() {
appSecret: user.wechatAppSecret,
templateId: user.wechatTemplateId,
openId: user.wechatOpenId,
serverVerifyToken: user.wechatVerifyToken,
token: '',
});
}
-33
View File
@@ -1,33 +0,0 @@
function formatTime(format) {
if (format === undefined) format = 'yyyy-MM-dd hh:mm:ss';
const date = new Date();
const o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds(),
S: date.getMilliseconds(),
};
if (/(y+)/.test(format)) {
format = format.replace(
RegExp.$1,
(date.getFullYear() + '').substr(4 - RegExp.$1.length)
);
}
for (let k in o) {
if (new RegExp('(' + k + ')').test(format)) {
format = format.replace(
RegExp.$1,
RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
);
}
}
return format;
}
module.exports = {
formatTime,
};
+7 -4
View File
@@ -28,16 +28,19 @@ async function requestToken(appId, appSecret) {
async function pushWeChatMessage(userPrefix, message) {
// Reference: https://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl
let user = tokenStore.get(userPrefix);
if (!user) {
return {
success: false,
message: `tokenStore 中不存在该前缀(${userPrefix}`,
};
}
let access_token = user.token;
let request_data = {
touser: user.wechatOpenId,
template_id: user.wechatTemplateId,
};
if (message.content) {
// TODO
// Generate html, save message to database and then return the id
let id = 'TODO';
request_data.url = `${config.href}${userPrefix}/${id}`;
request_data.url = `${config.href}${userPrefix}/${message.id}`;
}
request_data.data = { text: { value: message.description } };
let requestUrl = `https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=${access_token}`;