登录鉴权
Update:
本文主要介绍在使用云上曲率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);
}
}
本文主要介绍在使用云上曲率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);
}
}