本 SDK 需要和 微信小程序客户端腾讯云增强 SDK 配合一起使用,提供的服务有:
- 登录鉴权服务
- 信道服务
npm install qcloud-weapp-server-sdk --save
参见 API 文档
const qcloud = require('qcloud-weapp-server-sdk');
qcloud.config({
ServerHost: '业务服务器的主机名',
AuthServerUrl: '鉴权服务器地址',
TunnelServerUrl: '信道服务器地址',
TunnelSignatureKey: '和信道服务器通信的签名密钥',
});
处理用户登录需要指定单独的路由,如 https://www.qcloud.la/login
const express = require('express');
const LoginService = require('qcloud-weapp-server-sdk').LoginService;
const app = express();
app.get('/login', (req, res) => {
const loginService = new LoginService(req, res);
loginService.login().then(result => {
console.log('微信用户信息', result.userInfo);
});
});
app.listen(80);
const express = require('express');
const LoginService = require('qcloud-weapp-server-sdk').LoginService;
const app = express();
// 获取用户信息
app.get('/user', (req, res) => {
const loginService = new LoginService(req, res);
loginService.check().then(result => {
res.json({
'code': 0,
'message': 'ok',
'data': {
'userInfo': result.userInfo,
},
});
});
});
app.listen(80);
处理信道请求需要指定单独的路由,如 https://www.qcloud.la/tunnel
const express = require('express');
const bodyParser = require('body-parser');
const TunnelService = require('qcloud-weapp-server-sdk').TunnelService;
const app = express();
class TunnelHandler {
// TODO: 处理 onRequest 事件
onRequest(tunnelId, userInfo) {}
// TODO: 处理 onConnect 事件
onConnect(tunnelId) {}
// TODO: 处理 onMessage 事件
onMessage(tunnelId, type, content) {}
// TODO: 处理 onClose 事件
onClose(tunnelId) {}
}
// parse `application/json`
app.use(bodyParser.json());
// 处理信道请求
// 信道需同时处理 `GET` 和 `POST` 请求,为了方便这里使用 `all` 方法
app.all('/tunnel', (req, res) => {
const tunnelService = new TunnelService(req, res);
const handler = new TunnelHandler();
tunnelService.handle(handler, { 'checkLogin': true });
});
app.listen(80);