Initial commit
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
//var fs = require('fs');
|
||||
//var https = require('https');
|
||||
var http = require('http');
|
||||
var express = require('express');
|
||||
var {RtcTokenBuilder, RtmTokenBuilder, RtcRole, RtmRole} = require('agora-access-token')
|
||||
|
||||
var PORT = 8080;
|
||||
|
||||
// Fill the appID and appCertificate key given by Agora.io
|
||||
var appID = "<YOUR APP ID>";
|
||||
var appCertificate = "<YOUR APP CERTIFICATE>";
|
||||
|
||||
// token expire time, hardcode to 3600 seconds = 1 hour
|
||||
var expirationTimeInSeconds = 3600
|
||||
var role = RtcRole.PUBLISHER
|
||||
|
||||
var app = express();
|
||||
app.disable('x-powered-by');
|
||||
app.set('port', PORT);
|
||||
app.use(express.favicon());
|
||||
app.use(app.router);
|
||||
|
||||
var generateRtcToken = function(req, resp) {
|
||||
var currentTimestamp = Math.floor(Date.now() / 1000)
|
||||
var privilegeExpiredTs = currentTimestamp + expirationTimeInSeconds
|
||||
var channelName = req.query.channelName;
|
||||
// use 0 if uid is not specified
|
||||
var uid = req.query.uid || 0
|
||||
if (!channelName) {
|
||||
return resp.status(400).json({ 'error': 'channel name is required' }).send();
|
||||
}
|
||||
|
||||
|
||||
var key = RtcTokenBuilder.buildTokenWithUid(appID, appCertificate, channelName, uid, role, privilegeExpiredTs);
|
||||
|
||||
resp.header("Access-Control-Allow-Origin", "*")
|
||||
//resp.header("Access-Control-Allow-Origin", "http://ip:port")
|
||||
return resp.json({ 'key': key }).send();
|
||||
};
|
||||
|
||||
var generateRtmToken = function(req, resp) {
|
||||
var currentTimestamp = Math.floor(Date.now() / 1000)
|
||||
var privilegeExpiredTs = currentTimestamp + expirationTimeInSeconds
|
||||
var account = req.query.account;
|
||||
if (!account) {
|
||||
return resp.status(400).json({ 'error': 'account is required' }).send();
|
||||
}
|
||||
|
||||
var key = RtmTokenBuilder.buildToken(appID, appCertificate, account, RtmRole, privilegeExpiredTs);
|
||||
|
||||
resp.header("Access-Control-Allow-Origin", "*")
|
||||
//resp.header("Access-Control-Allow-Origin", "http://ip:port")
|
||||
return resp.json({ 'key': key }).send();
|
||||
};
|
||||
|
||||
app.get('/rtcToken', generateRtcToken);
|
||||
app.get('/rtmToken', generateRtmToken);
|
||||
|
||||
|
||||
http.createServer(app).listen(app.get('port'), function() {
|
||||
console.log('AgoraSignServer starts at ' + app.get('port'));
|
||||
});
|
||||
|
||||
//https.createServer(credentials, app).listen(app.get('port') + 1, function() {
|
||||
// console.log('AgoraSignServer starts at ' + (app.get('port') + 1));
|
||||
//});
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
# How to use
|
||||
## Fill in your vendor information
|
||||
Open *DemoServer.js* and replace <YOUR APP ID> and <YOUR APP CERTIFICATE> with your value
|
||||
```
|
||||
// Fill the appID and appCertificate key given by Agora.io
|
||||
var appID = "<YOUR APP ID>";
|
||||
var appCertificate = "<YOUR APP CERTIFICATE>";
|
||||
```
|
||||
|
||||
## Install Dependencies
|
||||
|
||||
```shell
|
||||
npm i
|
||||
node DemoServer.js
|
||||
```
|
||||
|
||||
## Generate Token
|
||||
### Generate RTC Token
|
||||
```shell
|
||||
curl http://localhost:8080/rtcToken?channelName=test
|
||||
```
|
||||
|
||||
### Generate RTM Token
|
||||
```shell
|
||||
curl http://localhost:8080/rtmToken?account=testAccount
|
||||
```
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "agora_sign_server",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "node app.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"agora-access-token": "^2.0.1",
|
||||
"express": "3.4.8"
|
||||
},
|
||||
"main": "DemoServer.js",
|
||||
"author": "agora"
|
||||
}
|
||||
Reference in New Issue
Block a user