agora-access-token
Version:
```shell npm i agora-access-token ```
80 lines (66 loc) • 2.41 kB
JavaScript
var AccessToken = require('../src/AccessToken').AccessToken;
var Priviledges = require('../src/AccessToken').priviledges;
var Role = {
kRoleAttendee: 0, // for communication
kRolePublisher: 1, // for live broadcast
kRoleSubscriber: 2, // for live broadcast
kRoleAdmin: 101
};
var attendeePrivileges = {
[ ]: 0,
[ ]: 0,
[ ]: 0,
[ ]: 0
};
var publisherPrivileges = {
[ ]: 0,
[ ]: 0,
[ ]: 0,
[ ]: 0,
[ ]: 0,
[ ]: 0,
[ ]: 0,
[ ]: 0,
[ ]: 0
};
var subscriberPrivileges = {
[ ] : 0,
[ ] : 0,
[ ] : 0,
[ ] : 0
};
var adminPrivileges = {
[ ] : 0,
[ ] : 0,
[ ] : 0,
[ ] : 0,
[ ]: 0
};
var RolePrivileges = {
[ ]: attendeePrivileges,
[ ]: publisherPrivileges,
[ ]: subscriberPrivileges,
[ ]: adminPrivileges
}
var SimpleTokenBuilder = function (appID, appCertificate, channelName, uid) {
let builder = this;
this.key = new AccessToken(appID, appCertificate, channelName, uid);
this.buildToken = function () {
return builder.key.build();
}
this.initPrivileges = function (role) {
let rolePri = RolePrivileges[role];
builder.key.messages = JSON.parse(JSON.stringify(rolePri));
}
this.initTokenBuilder = function (originToken) {
return builder.key.fromString(originToken);
}
this.setPrivilege = function (privilege, expireTimestamp) {
builder.key.messages[privilege] = expireTimestamp;
}
this.removePrivilege = function (privilege) {
delete builder.key.messages[privilege];
}
};
module.exports.SimpleTokenBuilder = SimpleTokenBuilder;
module.exports.Role = Role;