public class TokenApi extends Object
限定符和类型 | 方法和说明 |
---|---|
static reactor.core.publisher.Mono<Token> |
fetchUserTokenWithEasemobRealm(Context context,
TokenRequest tokenRequest) |
reactor.core.publisher.Mono<Token> |
getAppToken()
获取 App Token
|
String |
getUserToken(EMUser user,
Integer expireInSeconds,
Consumer<AccessToken2> tokenConfigurer,
String password)
获取 User Token,expireInSeconds 仅对生成 Agora userToken 生效
可获取 Easemob userToken 或 Agora userToken.
|
String |
getUserTokenWithInherit(String username) |
String |
getUserTokenWithInherit(String username,
Integer expireInSeconds) |
String |
getUserTokenWithTtl(EMUser user,
Integer expireInSeconds,
Consumer<AccessToken2> tokenConfigurer,
String password)
获取 User Token,expireInSeconds 对生成 Easemob userToken 和 Agora userToken 都会生效
可获取 Easemob userToken 或 Agora userToken.
|
public TokenApi(Context context)
public static reactor.core.publisher.Mono<Token> fetchUserTokenWithEasemobRealm(Context context, TokenRequest tokenRequest)
public reactor.core.publisher.Mono<Token> getAppToken()
public String getUserToken(EMUser user, Integer expireInSeconds, Consumer<AccessToken2> tokenConfigurer, String password)
可获取 Easemob userToken 或 Agora userToken.
如果您在初始化 EMProperties 时使用的是 ClientId 与 ClientSecret,那么无需关注 Agora userToken,直接使用以下示例获取 Easemob userToken 即可。 为用户 Cat 获取 Easemob userToken
EMUser cathy = new EMUser("cathy", "da920000-ecf9-11eb-9af3-296ff79acb67", true);
String cathyEasemobToken = service.token().getUserToken(cathy, null, null, "passwordOfUserCat");
如果您在初始化 EMProperties 时使用的是 AppId 与 AppCert,那么需要关注 Agora userToken。
其中 Agora userToken 的结构请参考 AccessToken2
Agora userToken 中除了 AgoraChat 权限以外, 还可以自定义添加其他 Agora 服务(比如RTC)的权限, 对每个服务的权限可以单独设置不同的过期时间.
为用户 Alice 生成仅含 AgoraChat 权限的 Agora userToken, 有效期为3600秒:
EMUser alice = new EMUser("alice", "da920000-ecf9-11eb-9af3-296ff79acb67", true);
String aliceAgoraChatToken = service.token().getUserToken(alice, 3600, null, null);
为用户 Bob 生成包含 AgoraChat 权限和 AgoraRTC (JOIN_CHANNEL) 权限的 Agora userToken, 有效期为600秒:
EMUser bob = new EMUser("bob", "da921111-ecf9-11eb-9af3-296ff79acb67", true);
String bobAgoraChatRtcToken = service.token().getUserToken(bob, 600, token -> {
AccessToken2.ServiceRtc serviceRtc = new AccessToken2.ServiceRtc("dummyRtcChannelName", "dummyUid");
serviceRtc.addPrivilegeRtc(AccessToken2.PrivilegeRtc.PRIVILEGE_JOIN_CHANNEL, 600);
token.addService(serviceRtc);
}, null);
user
- 用户expireInSeconds
- token 过期时间 TTL in seconds,该参数仅对 Agora userToken 生效tokenConfigurer
- 用来自定义添加其他 Agora 服务的 lambda functionpassword
- 用户密码public String getUserTokenWithTtl(EMUser user, Integer expireInSeconds, Consumer<AccessToken2> tokenConfigurer, String password)
可获取 Easemob userToken 或 Agora userToken.
如果您在初始化 EMProperties 时使用的是 ClientId 与 ClientSecret,那么无需关注 Agora userToken,直接使用以下示例获取 Easemob userToken 即可。 为用户 Cat 获取 Easemob userToken
EMUser cathy = new EMUser("cathy", "da920000-ecf9-11eb-9af3-296ff79acb67", true);
String cathyEasemobToken = service.token().getUserTokenWithTtl(cathy, 86400, null, "passwordOfUserCat");
如果您在初始化 EMProperties 时使用的是 AppId 与 AppCert,那么需要关注 Agora userToken。
其中 Agora userToken 的结构请参考 AccessToken2
Agora userToken 中除了 AgoraChat 权限以外, 还可以自定义添加其他 Agora 服务(比如RTC)的权限, 对每个服务的权限可以单独设置不同的过期时间.
为用户 Alice 生成仅含 AgoraChat 权限的 Agora userToken, 有效期为3600秒:
EMUser alice = new EMUser("alice", "da920000-ecf9-11eb-9af3-296ff79acb67", true);
String aliceAgoraChatToken = service.token().getUserTokenWithTtl(alice, 3600, null, null);
为用户 Bob 生成包含 AgoraChat 权限和 AgoraRTC (JOIN_CHANNEL) 权限的 Agora userToken, 有效期为600秒:
EMUser bob = new EMUser("bob", "da921111-ecf9-11eb-9af3-296ff79acb67", true);
String bobAgoraChatRtcToken = service.token().getUserTokenWithTtl(bob, 600, token -> {
AccessToken2.ServiceRtc serviceRtc = new AccessToken2.ServiceRtc("dummyRtcChannelName", "dummyUid");
serviceRtc.addPrivilegeRtc(AccessToken2.PrivilegeRtc.PRIVILEGE_JOIN_CHANNEL, 600);
token.addService(serviceRtc);
}, null);
user
- 用户expireInSeconds
- token 过期时间 TTL in secondstokenConfigurer
- 用来自定义添加其他 Agora 服务的 lambda functionpassword
- 用户密码Copyright © 2024. All rights reserved.