-
Notifications
You must be signed in to change notification settings - Fork 29
认证授权
zhaohengyu edited this page Sep 29, 2018
·
8 revisions
出于更好的安全性考虑, SDK从5.0版本开始调整了用户认证方式, 并且5.0以下版本SDK使用的用户认证方式将不再做支持.
新的认证方案如下图所示:
其中从有赞服务端返回认证信息是一个包含用户登录态信息的JSON, 是完成APP内登录态认证的必要条件.
需订阅认证事件(AbsAuthEvent)来监听来自SDK内的认证回调, 并编码实现请求三方自有服务端来获取认证数据.
在获取到用户信息后, 需要将数据按要求填充到YouzanToken
这个类创建的对象, 然后调用sync方法回传给SDK与WebView来完成认证.
示例代码:
YouzanToken token = new YouzanToken()
token.setAccessToken("接口返回的access_token")
token.setCookieKey("接口返回的cookie_key")
token.setCookieValue("接口返回的cookie_value")
// 注意调用顺序
YouzanSDK.sync(getApplicationContext(), token);
mView.sync(token);
在打开网页触发登录事件时,如果获取认证信息失败或者用户取消登录,关闭登录页面时,需要在上一个页面里面调用webview.syncNot()。代码如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (CODE_REQUEST_LOGIN == requestCode) {
if (resultCode == RESULT_OK) {
// 登录成功设置token
} else {
// 登录失败
view.syncNot();
}
} else {
// 最后,如果事件没有被其他代码处理,就交给webview处理。主要是处理文件选择事件
view.receiveFile(requestCode, data);
}
}
在三方App内发生用户切换或用户退出的时, 为了避免出现客户信息混乱, 请务必执行如下代码登出有赞用户角色.
代码示例:
YouzanSDK.userLogout(context);