了解 OAuth2.0协议 预研第三方登录 定义接口
来源:互联网 发布:怀孕软件哪个好 编辑:程序博客网 时间:2024/06/13 05:31
最近的项目 app+服务器 需要使用第三方登录,先预研一下 第三方登录的原理,同时定义 app和服务器之间的接口。
以下是 学习的链接
http://blog.csdn.net/seccloud/article/details/8192707
第三方平台和本地用户系统结合应该分为三种情况:
- 本地未登录,第一次登录第三方:此时相当于注册,直接把第三方信息拉取来并注册成本地用户就可以了,并建立本地用户与第三方用户(openid)的绑定关系,即 获取用户资料-注册-登录
- 本地未登录,再次登录第三方:此时用户已注册,获取到openid后直接找出对应的本地用户即可
- 本地登录,并绑定第三方: 这个只要将获取到的openid绑定到本地用户就可以了
那么第三方登录的流程 针对这三种情况,app和服务器的交互流程具体是什么样呢,这个是要我考虑 并设计的 下面以qq第三方登录 使用第三方sdk mob 为例:
1.本地未登录,第一次登录第三方 采用自动授权方式
a.如何获取第三方信息:授权成功后 可以通过如下方式获取第三方信息
Platform qzone = ShareSDK.getPlatform(this, QZone.NAME);
String accessToken = qzone.getDb().getToken(); // 获取授权token
String openId = qzone.getDb().getUserId(); // 获取用户在此平台的ID
String nickname = qzone.getDb().get(“nickname”); // 获取用户昵称
b.需要获取哪些信息
qq平台的 openId
qq 昵称 nickname
qq 头像 platform.getDb().getUserIcon() figureurl_qq_1小头像 figureurl_qq_2大头像
qq 性别 platform.getDb().getUserGender() f 女 m 男
qq 年龄 没找到
qq 绑定手机号
c.如何注册成本地用户
1、点击您应用的“qq登录”按钮
2、通过用户指定的平台,使用getDb().getUserId()来得到用户在此平台上的id
3、如果id不为空,则提交给您的登录接口,否则调用showUser请求用户的资料
4、服务器接收到id以后判断用户是否已经注册,若已注册,认为登录成功,否则 服务器根据获取到得资料进行注册(在后台处理用户感觉不到)
5、如果注册成功,引导用户进入客户端应用
d.如何建立本地用户与第三方用户(openid)的绑定关系
根据 登录类型和openid 组合判断是否已注册过
e.如果已经注册过 客户端进入应用的时候 读取openid进行登录,应该要有时效性。
如果没有时效性会存在如下问题,例如这个人的手机设备丢失,qq密码已修改,如果我们的app读取到自己保持的openid直接登录,那么会有安全问题。
使用mob sdk,plat.isValid() 来控制登录时效性,来判断授权是否有效(是否有授权,或授权时候过期)。
f.接口 需要的参数和返回值
参数:哪个第三方 openId 用户资料 ,返回值:已注册,未注册注册成功,其他错误
2.本地未登录,再次登录第三方:此时用户已注册,获取到openid后直接找出对应的本地用户即可
a.如何判断本地是否登录
app私有文件中保存上次登录的信息,应该保存如下内容 采用哪种方式登录 用户名密码/qq/微博/微信,如果是 用户名密码,则还应该保存 用户名 和 密码信息。如果该文件中 没有登录信息,则说明本地未登录过。
b.第三方用户已注册
c.后台直接登录
b和c 客户端和服务器交互 只需要一个接口就ok,服务器根据openId判断是否已注册,已注册告知客户端,客户端直接进入主界面。
3.本地登录,并绑定第三方: 这个只要将获取到的openid绑定到本地用户就可以了
如何app私有文件中已存在登录信息,说明本地登录过,如果是第三方登录 则根据第三方类型 调用mob接口,判断授权的有效性,如果是有效的 则通过mob接口获取 openId,和服务器交互 成功后直接登录就ok了。
- 了解 OAuth2.0协议 预研第三方登录 定义接口
- OAuth2.0协议 第三方登录 授权
- php第三方登录 Oauth2.0协议
- 第三方登录—OAuth2.0协议
- OAuth2.0协议 第三方登录 授权
- 第三方登录—OAuth2.0协议
- php第三方登录 Oauth2.0协议
- PHP第三方登录OAuth2.0协议
- 第三方登录——OAuth2.0协议
- 初探OAuth2.0第三方认证登录
- 基于OAuth2.0协议的QQ第三方授权登录iOS代码分析
- 腾讯QQ第三方登录1:申请接入(OAuth2.0协议)
- 腾讯QQ第三方登录2:原理与实现(OAuth2.0协议)
- 新浪微博第三方登录1:申请接入(OAuth2.0协议)
- OAuth2.0协议&第三方登录(微信,QQ,微博)
- 基于oauth2.0的第三方登录实现
- Android通过第三方登录理解oauth2.0机制
- php QQ第三方登录/OAuth2.0验证
- Spring注解@Resource和@Autowired区别对比
- linux上安装Eclipse
- mysql事务隔离级别
- 传感器
- 大型网站架构系列:消息队列(二)
- 了解 OAuth2.0协议 预研第三方登录 定义接口
- 209. Minimum Size Subarray Sum
- 利用FFmpeg进行视频文件进行分割
- HDU-5696-区间的价值(DFS)
- 虚拟文件系统VFS
- Hadoop与Spark整合
- java 数字时间年月日等 格式化format 输出
- 由system.currentTimeMillis() 获得当前的时间
- 朝鮮歷史 韓長庚 編