本文共 2050 字,大约阅读时间需要 6 分钟。
在友盟对各平台封装的基础上,再次封装,直接通过回调获取第三方平台的token、openid、unionid、nickname等信息。该流程主要包含以下步骤:
// 示例:其他平台的登录处理loginByWeixin(this, new AuthCallback() { @Override void onComplete(int var2, WeixinInfo info) { UmengUtil.loginBySina(this, new AuthCallback () { @Override void onComplete(int var2, SinaInfo info) { Log.e("dd", info.toString()); } @Override void onError(int var2, Throwable var3) {} @Override void onCancel(int var2) {} }); } @Override void onError(int var2, Throwable var3) {} @Override void onCancel(int var2) {}});
服务端接收到token、openid等关键信息后,需执行以下步骤:
信息核对校验:
账户处理:
返回个人信息:
一般规则:
特殊规则:
Sina:查询用户access_token的授权信息,包括授权时间、过期时间和scope权限。
access_token{ "uid": 1073880650, "appkey": 1352222456, "scope": null, "create_at": 1352267591, "expire_in": 157679471} Weixin:
unionid,需通过token和openid获取unionid进行比对。{ "subscribe": 1, "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "nickname": "Band", "sex": 1, "language": "zh_CN", "city": "广州", "province": "广东", "country": "中国", "headimgurl": "[http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0]", "subscribe_time": 1382694957, "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL", "remark": "", "groupid": 0} QQ:
access_token{ "client_id": "YOUR_APPID", "openid": "YOUR_OPENID"} 完成第三方平台认证后,按照系统注册绑定流程处理,参考:https://www.jianshu.com/p/5add98492ce5
转载地址:http://kbtfk.baihongyu.com/