Files
message-pusher/routers/user.js
T

53 lines
1.8 KiB
JavaScript
Raw Normal View History

2021-01-17 14:26:33 +08:00
const express = require('express');
const crypto = require('crypto');
const Message = require('../models/message').Message;
const { processMessage } = require('../common/message');
const { tokenStore } = require('../common/token');
const router = express.Router();
router.all('/:userPrefix/verify', (req, res, next) => {
// 验证消息来自微信服务器:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
const userPrefix = req.params.userPrefix;
const { signature, timestamp, nonce, echostr } = req.query;
const token = tokenStore.get(userPrefix).wechatVerifyToken;
let tmp_array = [token, timestamp, nonce].sort();
let tmp_string = tmp_array.join('');
tmp_string = crypto.createHash('sha1').update(tmp_string).digest('hex');
if (tmp_string === signature) {
res.send(echostr);
} else {
res.send('verification failed');
}
});
2021-06-13 17:52:41 +08:00
router.get('/ws/:userPrefix/:token', async (ws, req) => {
const userPrefix = req.params.userPrefix;
const token = req.params.token;
});
2021-01-17 16:45:52 +08:00
router.all('/:userPrefix/:description', async (req, res, next) => {
const userPrefix = req.params.userPrefix;
let message = {
title: '无标题',
description: req.params.description,
};
res.json(await processMessage(userPrefix, message));
});
2021-01-17 14:26:33 +08:00
router.all('/:userPrefix', async (req, res, next) => {
const userPrefix = req.params.userPrefix;
let message = {
2021-03-28 11:15:57 +08:00
type: req.query.type || req.body.type,
2021-01-17 14:26:33 +08:00
title: req.query.title || req.body.title || '无标题',
2021-01-31 18:31:37 +08:00
description: req.query.description || req.body.description || '无描述',
2021-01-17 14:26:33 +08:00
content: req.query.content || req.body.content,
2021-01-31 15:30:22 +08:00
email: req.query.email || req.body.email,
2021-06-13 12:11:26 +08:00
token: req.query.token || req.body.token,
2021-01-17 14:26:33 +08:00
};
let result = await processMessage(userPrefix, message);
res.json(result);
});
module.exports = router;