类 TokenApi


  • public class TokenApi
    extends java.lang.Object
    • 构造器详细资料

      • TokenApi

        public TokenApi​(Context context)
    • 方法详细资料

      • fetchUserTokenWithEasemobRealm

        public static reactor.core.publisher.Mono<Token> fetchUserTokenWithEasemobRealm​(Context context,
                                                                                        TokenRequest tokenRequest)
      • getAppToken

        public reactor.core.publisher.Mono<Token> getAppToken()
        获取 App Token
        返回:
        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

        可获取 Easemob userToken 或 Agora userToken. 如您初始化 service 时使用的是 Agora App Credentials, 则两种 userToken 都可以获取. 如您初始化 service 时使用的是 Easemob App Credentials, 则只能获取 Easemob userToken. 其中 Agora userToken 的结构请参考 AccessToken2

        Agora userToken 中除了 AgoraChat 权限以外, 还可以自定义添加其他 Agora 服务(比如RTC)的权限, 对每个服务的权限可以单独设置不同的过期时间.

        为用户 Cat 获取 Easemob userToken

        
         EMUser cathy = new EMUser("cathy", "da920000-ecf9-11eb-9af3-296ff79acb67", true);
         String cathyEasemobToken = service.token().getUserToken(cathy, null, null, "passwordOfUserCat");
         

        为用户 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
        tokenConfigurer - 用来自定义添加其他 Agora 服务的 lambda function
        password - 用户密码
        返回:
        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 也会生效

        可获取 Easemob userToken 或 Agora userToken. 如您初始化 service 时使用的是 Agora App Credentials, 则两种 userToken 都可以获取. 如您初始化 service 时使用的是 Easemob App Credentials, 则只能获取 Easemob userToken. 其中 Agora userToken 的结构请参考 AccessToken2

        Agora userToken 中除了 AgoraChat 权限以外, 还可以自定义添加其他 Agora 服务(比如RTC)的权限, 对每个服务的权限可以单独设置不同的过期时间.

        为用户 Cat 获取 Easemob userToken

        
         EMUser cathy = new EMUser("cathy", "da920000-ecf9-11eb-9af3-296ff79acb67", true);
         String cathyEasemobToken = service.token().getUserToken(cathy, null, null, "passwordOfUserCat");
         

        为用户 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
        tokenConfigurer - 用来自定义添加其他 Agora 服务的 lambda function
        password - 用户密码
        返回:
        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)