跳到主要内容

Node生成access token - 授权与访问控制

安装jsonwebtoken

    npm install jsonwebtoken

PubSub


let jwt = require('jsonwebtoken');

let id = 'user-001';
let protectedChannel = 'protected-payment';

let payload = {
id: id, //发送方,必须与connect GoEasy时传入的id一致
channel: protectedChannel, //接收方,授权的channel
w: true, //写权限,是否允许发送(publish)
r: true //读全新,是否允许接收(subscriber)
};

let options = {
expiresIn: "3h" //token的有效时间,最长不能超过3小时,为了安全,GoEasy不接受有效时间大于3小时的access token
};

let secretKey = 'f7e4cf0f5c6db52d'; //应用的秘钥Secret key,登陆GoEasy->应用详情->Professional keys->Secret key


//签名,生成access token
let accessToken = jwt.sign(payload, secretKey, options);

IM

私聊


let jwt = require('jsonwebtoken');

let id = 'user-001'; //发送方,必须与connect GoEasy时传入的id一致
let toId = 'user-002'; //接收方,私聊对象的id

let payload = {
id: id,
to:toId,
w: true, //写权限,是否允许发送
};

let options = {
expiresIn: "3h" //token的有效时间,最长不能超过3小时,为了安全,GoEasy不接受有效时间大于3小时的accessToken
};

let secretKey = 'f7e4cf0f5c6db52d'; //应用的秘钥Secret key,登陆GoEasy->应用详情->Professional keys->Secret key

//签名,生成access token
let accessToken = jwt.sign(payload, secretKey, options);

群聊


let jwt = require('jsonwebtoken');

let id = 'user-001'; //发送方,必须与connect GoEasy时传入的id一致
let groupIds = ['group001']; //接收方,需要授权的groupId列表, 支持一次为多个群授权

let payload = {
id: id,
to: groupIds,
w: true, //写权限,是否允许发送
r: true, //写权限,是否允许订阅群消息
};

let options = {
expiresIn: "3h" //token的有效时间,最长不能超过3小时,为了安全,GoEasy不接受有效时间大于3小时的accessToken
};

let secretKey = 'f7e4cf0f5c6db52d'; //应用的秘钥Secret key,登陆GoEasy->应用详情->Professional keys->Secret key

//签名,生成access token
let accessToken = jwt.sign(payload, secretKey, options);