Class TokenApi
- java.lang.Object
-
- com.easemob.im.server.api.token.TokenApi
-
public class TokenApi extends java.lang.Object
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static reactor.core.publisher.Mono<Token>
fetchUserTokenWithEasemobRealm(Context context, TokenRequest tokenRequest)
reactor.core.publisher.Mono<Token>
getAppToken()
获取 App Tokenjava.lang.String
getUserToken(EMUser user, java.lang.Integer expireInSeconds, java.util.function.Consumer<AccessToken2> tokenConfigurer, java.lang.String password)
获取 User Token,expireInSeconds 仅对生成 Agora userToken 生效java.lang.String
getUserTokenWithInherit(java.lang.String username)
java.lang.String
getUserTokenWithInherit(java.lang.String username, java.lang.Integer expireInSeconds)
java.lang.String
getUserTokenWithTtl(EMUser user, java.lang.Integer expireInSeconds, java.util.function.Consumer<AccessToken2> tokenConfigurer, java.lang.String password)
获取 User Token,expireInSeconds 对生成 Easemob userToken 和 Agora userToken 都会生效
-
-
-
Constructor Detail
-
TokenApi
public TokenApi(Context context)
-
-
Method Detail
-
fetchUserTokenWithEasemobRealm
public static reactor.core.publisher.Mono<Token> fetchUserTokenWithEasemobRealm(Context context, TokenRequest tokenRequest)
-
getAppToken
public reactor.core.publisher.Mono<Token> getAppToken()
获取 App Token- Returns:
- token
-
getUserToken
public java.lang.String getUserToken(EMUser user, java.lang.Integer expireInSeconds, java.util.function.Consumer<AccessToken2> tokenConfigurer, java.lang.String password)
获取 User Token,expireInSeconds 仅对生成 Agora userToken 生效可获取 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);
- Parameters:
user
- 用户expireInSeconds
- token 过期时间 TTL in seconds,该参数仅对 Agora userToken 生效tokenConfigurer
- 用来自定义添加其他 Agora 服务的 lambda functionpassword
- 用户密码- Returns:
- Easemob userToken 或 Agora userToken
-
getUserTokenWithTtl
public java.lang.String getUserTokenWithTtl(EMUser user, java.lang.Integer expireInSeconds, java.util.function.Consumer<AccessToken2> tokenConfigurer, java.lang.String password)
获取 User Token,expireInSeconds 对生成 Easemob userToken 和 Agora userToken 都会生效可获取 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);
- Parameters:
user
- 用户expireInSeconds
- token 过期时间 TTL in secondstokenConfigurer
- 用来自定义添加其他 Agora 服务的 lambda functionpassword
- 用户密码- Returns:
- Easemob userToken 或 Agora userToken
-
getUserTokenWithInherit
public java.lang.String getUserTokenWithInherit(java.lang.String username)
-
getUserTokenWithInherit
public java.lang.String getUserTokenWithInherit(java.lang.String username, java.lang.Integer expireInSeconds)
-
-