You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.0 KiB
Dart
41 lines
1.0 KiB
Dart
import 'dart:math';
|
|
|
|
import 'package:dart_jsonwebtoken/dart_jsonwebtoken.dart';
|
|
|
|
import 'config.dart';
|
|
|
|
String makeId(int length) {
|
|
String result = "";
|
|
String characters =
|
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
int charactersLength = characters.length;
|
|
for (var i = 0; i < length; i++) {
|
|
result += characters[Random().nextInt(charactersLength)];
|
|
}
|
|
return result;
|
|
}
|
|
|
|
String generateJwt(String sessionName, String roleType) {
|
|
try {
|
|
var iat = DateTime.now();
|
|
var exp = DateTime.now().add(Duration(days: 2));
|
|
final jwt = JWT(
|
|
{
|
|
'app_key': configs["ZOOM_SDK_KEY"],
|
|
'version': 1,
|
|
'user_identity': makeId(10),
|
|
'iat': (iat.millisecondsSinceEpoch / 1000).round(),
|
|
'exp': (exp.millisecondsSinceEpoch / 1000).round(),
|
|
'tpc': sessionName,
|
|
'role_type': int.parse(roleType),
|
|
'cloud_recording_option': 1,
|
|
},
|
|
);
|
|
var token = jwt.sign(SecretKey(configs["ZOOM_SDK_SECRET"]));
|
|
return token;
|
|
} catch (e) {
|
|
print(e);
|
|
return '';
|
|
}
|
|
}
|