登录鉴权

本文主要介绍在使用云上曲率RTC SDK时,如何进行登录鉴权操作。

功能介绍

在RTC SDK初始化完成后,需要调用登录接口,完成身份鉴权,成功后,可以正常使用RTC SDK的功能。

鉴权

鉴权方式与云上 RTM SDK服务提供的鉴权方式一致,请参考Token鉴权

登录

在获取完Token之后,可以调用login完成登录。

参数说明:

参数 含义 说明
token 登录token Token获取方式包括客户端生成,和通过服务端生成后拉取
ts 对应token的获取方式所产生的时间戳 如是客户端生成Token,则为对应的时间戳
如是从服务端获取Token,则为0
lang 语言 用户使用语言,针对增值服务需求
attr 自定义属性 开发者可以配置业务信息

同步方法

//服务端生成后获取Token
public LDAnswer login(String token, String lang, Map<String, String> attr) {
    if (engineClient == null)
        return new LDAnswer(RTMErrorCode.RTM_EC_UNKNOWN_ERROR.value(),"engineClient is null");
    return engineClient.loginRTM(token, lang, attr, 0);
    }
//客户端生成Token
public LDAnswer login(String token, String lang, Map<String, String> attr, long ts) {
    if (engineClient == null)
        return new LDAnswer(RTMErrorCode.RTM_EC_UNKNOWN_ERROR.value(),"engineClient is null");
    return turn engineClient.loginRTM(token, lang, attr, ts);
    }

异步方法

//服务端生成后获取Token
public void login(String token, String lang, Map<String, String> attr, IEmptyCallback callback) {
    if (engineClient == null) {
        callback.onError( new LDAnswer(RTMErrorCode.RTM_EC_UNKNOWN_ERROR.value(), "engineClient is null"));
        return;
        }
    engineClient.loginRTM(callback, token, lang, attr, 0);
    }
//客户端生成Token
public void login(String token, String lang, Map<String, String> attr, long ts, IEmptyCallback callback) {
    if (engineClient == null) {
        callback.onError( new LDAnswer(RTMErrorCode.RTM_EC_UNKNOWN_ERROR.value(), "engineClient is null"));
        return;
        }
    engineClient.loginRTM(callback, token, lang, attr, ts);
    }

登出

当用户切换账号或退出应用(非切换后台)时使用。

public void closeEngine(){
    engineClient.realClose();
    synchronized (LDEngineClients){
        String findkey = engineClient.getPid() + ":" + engineClient.getUid();
        LDEngineClients.remove(findkey);
    }
}