Skip to content

Commit

Permalink
Revert "Merge pull request #154 from winking324/dev/accesstoken2"
Browse files Browse the repository at this point in the history
This reverts commit 4408a79, reversing
changes made to 5f571c2.
  • Loading branch information
plutoless committed Jul 2, 2021
1 parent 9895681 commit ee6ef41
Show file tree
Hide file tree
Showing 74 changed files with 9,368 additions and 2,481 deletions.
195 changes: 186 additions & 9 deletions DynamicKey/AgoraDynamicKey/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,31 +31,35 @@ Sample Code for generating AccessToken are available on the following platforms:
> You can use either the following SimpleTokenBuilder or AccessToken sample code to generate an AccessToken. SimpleTokenBuilder encapsulates the underlying AccessToken sample code and is easy to use.
> Note: If you are using windows platform to genenrate access token, you should port c++ code to Visual Stidio to avoid security risk caused by invocation of random_device()
### C++
+ https://github.com/AgoraIO/Tools/tree/master/DynamicKey/AgoraDynamicKey/cpp/sample
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/cpp/src/SimpleTokenBuilder.h
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/cpp/src/AccessToken.h
### Go
+ https://github.com/AgoraIO/Tools/tree/master/DynamicKey/AgoraDynamicKey/go/sample
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/go/src/SimpleTokenBuilder/SimpleTokenBuilder.go
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/go/src/AccessToken/AccessToken.go
### Java
+ https://github.com/AgoraIO/Tools/tree/master/DynamicKey/AgoraDynamicKey/java
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/java/src/main/java/io/agora/media/SimpleTokenBuilder.java
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/java/src/main/java/io/agora/media/AccessToken.java
### Node.js
+ https://github.com/AgoraIO/Tools/tree/master/DynamicKey/AgoraDynamicKey/nodejs
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/nodejs/src/SimpleTokenBuilder.js
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/nodejs/src/AccessToken.js
### Python
+ https://github.com/AgoraIO/Tools/tree/master/DynamicKey/AgoraDynamicKey/python/sample
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/python/src/SimpleTokenBuilder.py
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/python/src/AccessToken.py
### PHP
+ https://github.com/AgoraIO/Tools/tree/master/DynamicKey/AgoraDynamicKey/php/sample
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/php/src/SimpleTokenBuilder.php
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/php/src/AccessToken.php
### Perl
Expand All @@ -64,7 +68,7 @@ Sample Code for generating AccessToken are available on the following platforms:
### CSharp
+ https://github.com/AgoraIO/Tools/blob/deprecated/DynamicKey/AgoraDynamicKey/csharp/src/AgoraIO/Media/AccessToken.cs
+ https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/csharp/src/AgoraIO/Media/AccessToken.cs
### **YOUR IMPLEMENTATIONS ARE VERY WELCOME.**
Expand Down Expand Up @@ -108,3 +112,176 @@ If you are using the Agora SDK of a version earlier than 2.1 and looking at impl
| DynamicKey3 | 0 | All |
| DynamicKey | All | All |
### C++
```c
/**
* build with command:
* g++ main.cpp -lcrypto -std=c++0x
*/
#include "../src/DynamicKey5.h"
#include <iostream>
#include <cstdint>
using namespace agora::tools;
int main(int argc, char const *argv[]) {
::srand(::time(NULL));
auto appID = "970ca35de60c44645bbae8a215061b33";
auto appCertificate = "5cfd2fd1755d40ecb72977518be15d3b";
auto channelName= "my channel name for recording";
auto unixTs = ::time(NULL);
int randomInt = (::rand()%256 << 24) + (::rand()%256 << 16) + (::rand()%256 << 8) + (::rand()%256);
uint32_t uid = 2882341273u;
auto expiredTs = 0;
std::cout << std::endl;
std::cout << DynamicKey5::generateMediaChannelKey(appID, appCertificate, channelName, unixTs, randomInt, uid, expiredTs) << std::endl;
return 0;
}
```

### Go
```go
package main

import (
"../src/DynamicKey5"
"fmt"
)

func main() {
appID:="970ca35de60c44645bbae8a215061b33"
appCertificate:="5cfd2fd1755d40ecb72977518be15d3b"
channelName := "7d72365eb983485397e3e3f9d460bdda"
unixTs:=uint32(1446455472)
uid:=uint32(2882341273)
randomInt:=uint32(58964981)
expiredTs:=uint32(1446455471)

var mediaChannelKey,channelError = DynamicKey5.GenerateMediaChannelKey(appID, appCertificate, channelName, unixTs, randomInt, uid, expiredTs)
if channelError == nil {
fmt.Println(mediaChannelKey)
}

}
```

### Java
```java
package io.agora.media.sample;

import io.agora.media.DynamicKey5;

import java.util.Date;
import java.util.Random;

public class DynamicKey5Sample {
static String appID = "970ca35de60c44645bbae8a215061b33";
static String appCertificate = "5cfd2fd1755d40ecb72977518be15d3b";
static String channel = "7d72365eb983485397e3e3f9d460bdda";
static int ts = (int)(new Date().getTime()/1000);
static int r = new Random().nextInt();
static long uid = 2882341273L;
static int expiredTs = 0;

public static void main(String[] args) throws Exception {
System.out.println(DynamicKey5.generateMediaChannelKey(appID, appCertificate, channel, ts, r, uid, expiredTs));
}
}
```

### Node.js
```javascript
var DynamicKey5 = require('../src/DynamicKey5');
var appID = "970ca35de60c44645bbae8a215061b33";
var appCertificate = "5cfd2fd1755d40ecb72977518be15d3b";
var channel = "my channel name";
var ts = Math.floor(new Date() / 1000);
var r = Math.floor(Math.random() * 0xFFFFFFFF);
var uid = 2882341273;
var expiredTs = 0;

console.log("5 channel key: " + DynamicKey5.generateMediaChannelKey(appID, appCertificate, channel, ts, r, uid, expiredTs));
```

### PHP
```php
<?php
include "../src/DynamicKey5.php";

$appID = '970ca35de60c44645bbae8a215061b33';
$appCertificate = '5cfd2fd1755d40ecb72977518be15d3b';
$channelName = "7d72365eb983485397e3e3f9d460bdda";
$ts = 1446455472;
$randomInt = 58964981;
$uid = 2882341273;
$expiredTs = 1446455471;

echo generateMediaChannelKey($appID, $appCertificate, $channelName, $ts, $randomInt, $uid, $expiredTs) . "\n";
?>

```

### Python
```python
import sys
import os
import time
from random import randint

sys.path.append(os.path.join(os.path.dirname(__file__), '../src'))
from DynamicKey5 import *

appID = "970ca35de60c44645bbae8a215061b33"
appCertificate = "5cfd2fd1755d40ecb72977518be15d3b"
channelname = "7d72365eb983485397e3e3f9d460bdda"
unixts = int(time.time());
uid = 2882341273
randomint = -2147483647
expiredts = 0

print "%.8x" % (randomint & 0xFFFFFFFF)

if __name__ == "__main__":
print generateMediaChannelKey(appID, appCertificate, channelname, unixts, randomint, uid, expiredts)

```

### Ruby
```ruby
require '../src/dynamic_key5'
app_id = "970ca35de60c44645bbae8a215061b33"
app_certificate = "5cfd2fd1755d40ecb72977518be15d3b"
channel_name = "7d72365eb983485397e3e3f9d460bdda"
unix_ts = Time.now.utc.to_i
uid = 2882341273
random_int = -2147483647
expired_ts = 0

puts "%.8x" % (random_int & 0xFFFFFFFF)

media_channel_key = DynamicKey5.gen_media_channel_key(app_id, app_certificate, channel_name, unix_ts, random_int, uid, expired_ts)

puts "media_channel_key:#{media_channel_key}"


```
### Perl
```perl
use Agora::DynamicKey5;

my $app_id = "970ca35de60c44645bbae8a215061b33";
my $app_certificate = "5cfd2fd1755d40ecb72977518be15d3b";
my $channel_name = "7d72365eb983485397e3e3f9d460bdda";
my $unix_ts = time();
my $uid = 2882341273;
my $random_int = -2147483647;
my $expired_ts = 0;

my $media_channel_key = Agora::DynamicKey5::gen_media_channel_key($app_id, $app_certificate, $channel_name, $unix_ts, $random_int, $uid, $expired_ts);

say "media_channel_key:$media_channel_key";
```

This file was deleted.

10 changes: 0 additions & 10 deletions DynamicKey/AgoraDynamicKey/cpp/sample/RtcTokenBuilderSample.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,5 @@ int main(int argc, char const *argv[]) {
appID, appCertificate, channelName, userAccount, UserRole::Role_Publisher,
privilegeExpiredTs);
std::cout << "Token With UserAccount:" << result << std::endl;
result = RtcTokenBuilder::buildTokenWithUid(
appID, appCertificate, channelName, uid,
privilegeExpiredTs, privilegeExpiredTs,
privilegeExpiredTs, privilegeExpiredTs);
std::cout << "Token With Int Uid:" << result << std::endl;
result = RtcTokenBuilder::buildTokenWithUserAccount(
appID, appCertificate, channelName, userAccount,
privilegeExpiredTs, privilegeExpiredTs,
privilegeExpiredTs, privilegeExpiredTs);
std::cout << "Token With UserAccount:" << result << std::endl;
return 0;
}
6 changes: 1 addition & 5 deletions DynamicKey/AgoraDynamicKey/cpp/src/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,4 @@
> The Agora RTSA SDK supports joining multiple channels. If you join multiple channels at the same time, then you MUST generate a specific token for each channel you join.
- **RtmTokenBuilder.h**: Source code for generating a token for the Agora RTM SDK.
- **AccessToken.h**: Implements all the underlying algorithms for generating a token. The HMAC/sha/rand algorithms are using openssl APIs to ensure the security and platform independent. Both **RtcTokenBuilder.h** and **RtmTokenBuilder.h** are a wrapper of **AccessToken.h** and have much easier-to-use APIs. We recommend using **RtcTokenBuilder.h** for generating an RTC token or **RtmTokenBuilder.h** for an RTM token.

- **Development dependencies**: There's a few library you will need to have installed.
- openssl
- zlib
- **AccessToken.h**: Implements all the underlying algorithms for generating a token. Both **RtcTokenBuilder.h** and **RtmTokenBuilder.h** are a wrapper of **AccessToken.h** and have much easier-to-use APIs. We recommend using **RtcTokenBuilder.h** for generating an RTC token or **RtmTokenBuilder.h** for an RTM token.
Loading

0 comments on commit ee6ef41

Please sign in to comment.