账号及用户 SDK
更新时间:2018-08-01 21:24:46
概述
账号和用户 SDK,提供账号能力,包括注册,登录,登出,获取账号,会话管理,人机校验等功能。同时提供 UI 定制的能力。
| 依赖SDK | 概述 |
|---|---|
| API 通道 | 提供API通道能力 |
初始化
初始化 SDK 前,请先初始化 API 通道SDK,请参见 API 通道 - 初始化。
SDK 运行前,需要通过 ConfigManager 完成对 SDK 的配置。
/**
* 设置当前的环境信息 -- 目前只支持线上环境
* Environment.ONLINE 线上
**/
ConfigManager.getInstance().setEnvironment(Environment.ONLINE);
//设置图片后缀
ConfigManager.getInstance().setSecGuardImagePostfix("114d");
//设置使用单张图片
ConfigManager.getInstance().setUseSingleImage(true);
//使用API网关
ConfigManager.getInstance().setAPIGateway(true);
//打开调试,会有详细日志输出
OpenAccountSDK.turnOnDebug();
//调用异步初始化
OpenAccountSDK.asyncInit(getApplicationContext(), new InitResultCallback() {
@Override
public void onSuccess() {
ToastUtil.show(getApplicationContext(), "OpenAccountSDK 初始化成功");
}
@Override
public void onFailure(int code, String msg) {
ToastUtil.show(getApplicationContext(), "OpenAccountSDK 初始化失败 : " + msg);
}
});
OpenAccountSDK 提供的接口,请参见 API Doc
使用方式
登录
public void login() {
OpenAccountUIService openAccountService = OpenAccountSDK.getService(OpenAccountUIService.class);
try {
openAccountService.showLogin(context, new LoginCallback() {
@Override
public void onSuccess(OpenAccountSession openAccountSession) {
ToastUtil.show(getApplicationContext(), "登录成功");
}
@Override
public void onFailure(int i, String s) {
ToastUtil.show(getApplicationContext(), "登录失败");
}
});
} catch (Exception e) {
ToastUtil.show(getApplicationContext(), "登录异常 : " + e.toString());
}
}
退出登陆
public void logout() {
OpenAccountService openAccountService = OpenAccountSDK.getService(OpenAccountService.class);
try {
openAccountService.logout(context, new LogoutCallback() {
@Override
public void onSuccess() {
ToastUtil.show(getApplicationContext(), "登出成功");
}
@Override
public void onFailure(int i, String s) {
ToastUtil.show(getApplicationContext(), "登出失败 : " + s);
}
});
} catch (Exception e) {
ToastUtil.show(getApplicationContext(), "登出异常 : " + e.toString());
}
}
刷新会话
OpenAccountSessionService openAccountSessionService = OpenAccountSDK.getService(OpenAccountSessionService.class);
openAccountSessionService.refreshSession(true);
获取会话ID
private long getSessionId() {
SessionManagerService sessionManagerService = OpenAccountSDK.getService(SessionManagerService.class);
if (sessionManagerService == null) {
return 0;
}
return sessionManagerService.getSessionId();
}
获取用户信息
public User getUserInfo() {
OpenAccountService openAccountService = OpenAccountSDK.getService(OpenAccountService.class);
OpenAccountSession session = openAccountService.getSession();
return session == null ? null : session.getUser();
}
三方自有账号接入
注意在对接三方自有账号时,必须首先完成SDK的初始化。
强烈建议,在对接三方自有账号之前,请先确认默认的账号页面可以正常注册,登录。
可以选择自由账号通过OAuth2.0协议接入,前提需要做好配置,流程参考 账号及用户服务配置
OpenAccountService service = OpenAccountSDK.getService(OpenAccountService.class);
service.authCodeLogin(OALoginActivity.this, authCode, new LoginCallback() {
@Override
public void onSuccess(OpenAccountSession openAccountSession) {
Toast.makeText(getApplicationContext(), "auth 授权登录 成功 ", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int code, String msg) {
Toast.makeText(getApplicationContext(), "auth授权登录 失败 code = " + code + " message = " + msg, Toast.LENGTH_SHORT).show();
}
});
自定义UI
请参考 UI界面自定义 一文
海外社交账号Auth登录(Facebook,Gmail,Twitter)
重要说明,接入海外账号需要翻墙。
1. Facebook
- 申请Facebook开发者账号 https://developers.facebook.com/
- 创建自己的应用,并根据官方的流程,完整应用的创建以及配置 https://developers.facebook.com/quickstarts/?platform=android
- 针对上一步创建的应用,接入登录SDK https://developers.facebook.com/docs/facebook-login/android/
- 应用审核,发布。 由于Facebook的要求,创建的应用必须发布上线,才可以使用已经注册过的Facebook账号登录,否则,需要增加测试的Facebook账号。
应用发布可以参考如下步骤:
- 关于应用发布的说明,请仔细阅读官方说明:

- 创建并且配置完成之后,在https://developers.facebook.com/apps/ 找到刚刚创建的应用

- 在设置一栏中填写应用上线前的基本信息(如果不想上线,可以在用户身份里,配置测试账户)

- 然后选择应用审核,注意如果上一步没有填写完整,发布时会同样给出警告:

- 审核完成通过之后,点击第二个红框开关,将应用发布上线。
对接OA
推荐使用SDK版本
implementation('com.facebook.android:facebook-android-sdk:4.20.0')