Skip to content

Commit

Permalink
fix DemoServer
Browse files Browse the repository at this point in the history
  • Loading branch information
plutoless committed Mar 8, 2020
1 parent c973b2e commit edc65a5
Show file tree
Hide file tree
Showing 8 changed files with 333 additions and 189 deletions.
2 changes: 1 addition & 1 deletion DynamicKey/AgoraDynamicKey/nodejs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ npm i agora-access-token

## Import
```javascript
const {RtcTokenBuilder, RtmTokenBuilder, RtcRole, RtmRole} = require('./index')
const {RtcTokenBuilder, RtmTokenBuilder, RtcRole, RtmRole} = require('agora-access-token')
```

### Generate
Expand Down
32 changes: 32 additions & 0 deletions DynamicKey/AgoraDynamicKey/nodejs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion DynamicKey/AgoraDynamicKey/nodejs/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agora-access-token",
"version": "2.0.0",
"version": "2.0.2",
"description": "",
"homepage": "https://github.com/AgoraIO/Tools/tree/master/DynamicKey/AgoraDynamicKey/nodejs",
"main": "index.js",
Expand Down
41 changes: 29 additions & 12 deletions DynamicKey/AgoraDynamicKey/nodejs/server/DemoServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,57 @@
//var https = require('https');
var http = require('http');
var express = require('express');
var AgoraSignGenerator = require('./lib/AgoraSignGenerator');
var {RtcTokenBuilder, RtmTokenBuilder, RtcRole, RtmRole} = require('agora-access-token')

var PORT = 8080;

// Fill the vendorkey and sign key given by Agora.io
var VENDOR_KEY = "xxxx";
var SIGN_KEY = "yyyy";
// Fill the appID and appCertificate key given by Agora.io
var appID = "<YOUR APP ID>";
var appCertificate = "<YOUR APP CERTIFICATE>";

//var private_key = fs.readFileSync(__dirname + '/../../cert/xxx.com.key');
//var certificate = fs.readFileSync(__dirname + '/../../cert/xxx.com.crt');
//var credentials = {key: private_key, cert: certificate, passphrase: "password"};
// token expire time, hardcode to 3600 seconds = 1 hour
var expirationTimeInSeconds = 3600
var currentTimestamp = Math.floor(Date.now() / 1000)
var privilegeExpiredTs = currentTimestamp + expirationTimeInSeconds
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 generateDynamicKey = function(req, resp) {
var generateRtcToken = function(req, resp) {
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 ts = Math.round(new Date().getTime() / 1000);
var rnd = Math.round(Math.random() * 100000000);
var key = AgoraSignGenerator.generateDynamicKey('4c95c85a2c9849e1b4653c47f0ee415c', 'd75e69f2021c49cc9ac2e1894187000f', channelName, ts, rnd);

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 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('/dynamic_key', generateDynamicKey);
app.get('/rtcToken', generateRtcToken);
app.get('/rtmToken', generateRtmToken);


http.createServer(app).listen(app.get('port'), function() {
Expand Down
26 changes: 26 additions & 0 deletions DynamicKey/AgoraDynamicKey/nodejs/server/README.md
Original file line number Diff line number Diff line change
@@ -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
```
174 changes: 0 additions & 174 deletions DynamicKey/AgoraDynamicKey/nodejs/server/lib/AgoraSignGenerator.js

This file was deleted.

Loading

0 comments on commit edc65a5

Please sign in to comment.