环信android 单点登录
时间: 2023-10-18 15:59:01 浏览: 33
环信 Android SDK 支持单点登录(SSO),可以通过以下步骤实现:
1. 在您的服务器上实现 SSO 登录,并返回 token。
2. 将 token 发送给环信服务器,以获取环信的用户身份信息。
3. 使用环信用户身份信息登录环信 SDK。
具体实现过程如下:
1. 在您的服务器上实现 SSO 登录,并返回 token。
2. 使用 token 发起请求,获取环信用户身份信息。您可以使用如下代码实现:
```java
EMHttpClient.getInstance().get("http://example.com/userinfo?token=xxxxxx", new EMValueCallBack<String>() {
@Override
public void onSuccess(String value) {
// 解析返回的用户信息
JSONObject jsonObject = new JSONObject(value);
String hxUserId = jsonObject.getString("hxUserId");
String hxUserPwd = jsonObject.getString("hxUserPwd");
// 使用环信用户身份信息登录环信 SDK
EMClient.getInstance().login(hxUserId, hxUserPwd, new EMCallBack() {
@Override
public void onSuccess() {
// 登录成功
}
@Override
public void onError(int code, String error) {
// 登录失败
}
@Override
public void onProgress(int progress, String status) {
// 登录中
}
});
}
@Override
public void onError(int error, String errorMsg) {
// 获取用户信息失败
}
});
```
以上代码中,`http://example.com/userinfo?token=xxxxxx` 是您的服务器提供的获取用户信息的接口,其中 `xxxxxx` 是从您的服务器获取的 token。
3. 如果您的环信账号与您的 SSO 登录账号一一对应,那么您可以将环信的用户名和密码保存在自己的服务器上,下次登录时直接使用这些信息进行登录,不需要再次获取环信用户身份信息。如果您的环信账号与您的 SSO 登录账号不一一对应,那么您需要在获取环信用户身份信息时进行环信账号和 SSO 登录账号的映射,并将映射关系保存在您的服务器上。