在进入主题之前,我想先解释一下什么是“第三方登录”。所谓的第三方登录,就是利用用户在第三方平台上已有的账号来快速完成自己应用的登录或者注册的功能。而这里的第三方平台,一般是已经有大量用户的平台,如国内的新浪微博、QQ空间,外国的Facebook、twitter等等。第三方登录不是一个具体的接口,而是一种思想或者一套步骤。
要实现第三方登录,首先你需要选择一个第三方平台。新浪微博和QQ空间都是好的选择,这些平台拥有大量的用户,而且还开放了API,供我们调用接入。但是同样开放API,微信却不是一个好选择,这是因为微信的API只支持分享,不支持授权验证或者获取用户资料。所以要实现第三方登录,你选择的平台至少需要具备:
1、开放了API
2、具备获取用户资料或至少可以进行授权验证
其实Share SDK已经支持了十几种这样子的平台,完全足够你选择使用。
选择好平台以后,现在思考下面的问题:
你的应用是否具备独立账户系统?
这个问题是第三方登录时接口选择的重要标准。如果你选择“是”,则意味着你的应用只是需要第三方平台的用户,而不是他们的账户验证功能——也就是“要数据,不要功能”。而如果你选择“否”,则表示你实际上是“要功能,不要数据(用户)”。对于Share SDK来说,前者你的入口方法是showUser(null),而后者是authorize()。那么下面我分情况解释两种接入方式的步骤。
从简单的说起。对于“要功能,不要数据”的情况,步骤如下:
1、用户触发第三方登录事件
2、调用weibo.getDb().getWeiboId()请求用户在此平台上的ID
3、如果用户ID存在,则认为用户是合法用户,允许进入系统;否则调用authorize()
4、authorize()方法将引导用户在授权页面输入帐号密码,然后目标平台将验证此用户
5、如果onComplete()方法被回调,表示授权成功,引导用户进入系统
6、否则提示错误,调用removeAccount()方法,删除可能的授权缓存数据
然后是“要数据,不要功能”的步骤:
1、用户触发第三方登录事件
2、showUser(null)请求授权用户的资料(这个过程中可能涉及授权操作)
3、如果onComplete()方法被回调,将其参数Hashmap代入你应用的Login流程
4、否则提示错误,调用removeAccount()方法,删除可能的授权缓存数据
5、Login时客户端发送用户资料中的用户ID给服务端
6、服务端判定用户是已注册用户,则引导用户进入系统,否则返回特定错误码
7、客户端收到“未注册用户”错误码以后,代入用户资料到你应用的Register流程
8、Register时在用户资料中挑选你应用的注册所需字段,并提交服务端注册
9、服务端完成用户注册,成功则反馈客户端引导用户进入系统
10、否则提示错误,调用removeAccount()方法,删除可能的授权缓存数据
为了写这篇文章,我自己做了一个基于Share SDK 1.2.0的Demo,选择了新浪微博、QQ空间、Facebook和Twitter作为演示的平台。由于我没有可以使用的服务器和账户系统,因此只是演示了上述的“要功能,不要数据”。但是可以很容易看出来,这种情况,其实是第二种情况的简化,而第二种情况剩余的步骤,更多的是你应用的客户端和服务端之间的登录和注册操作,和Share SDK已经没什么关系了。
- 浏览: 960341 次
最新评论
-
JueLie:
规划规划
【Java线程】锁机制:synchronized、Lock、Condition -
yuejingjiahong:
android自带Json API -
ti_an_1989:
所以这种情况是不使用launchMode为singleTask ...
android Task,launcherMode对返回键与laucher的影响 -
IXHONG:
http://itlong.com
依赖注入和控制反转 -
lookstorm:
好文
java内存模型
相关推荐
分享/第三方登录,Share SDK,它是为iOS、Android、WP8的APP提供社会化功能的一个组件,目前支持如QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、facebook、twitter、google+等国内外...
希望帮到大家,主要是iOS第三方登陆的demo,不过只有微博和qq的
基于Share SDK的第三方分享,有新浪微博,微信,QQ
shareSdk第三方登录。手机号,qq登录,微信登录,新浪微博登录。
Share SDK使用说明.pdf
Android快速SDK(24)第三方分享UmengShare【肌肉记忆,分钟接入】
CWShare是一个集成的国内分享平台的Object-C版本的SDK。 目前CWShare支持以下平台: 新浪微博 腾讯QQ
share point 2003 SDK
share sdk 的应用开发具体详解
shareSDK第三方登录,很好的例子,别人写的,一起学习下
Share.js是一款一键转发工具,它可以一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等社交网站,使用字体图标。
Android蓝牙打印,文档类型word,打印机HP-officejet100 L411 ,采用打印app为第三方应用PrinterShare (需要购买注册key) 根据POI生成word模板,保存至本地,通过调用PrinterShare实现打印,兼容各类打印机,唯一缺点...
利用Share SDK 制作出一个简单的自定制的Demo
Mob官方上ShareSDK最新已经弃用客户端自行生成相应jar包的工具改为在build中配置代码的方式进行集成,Eclips环境则需要jar包方式,此工具为之前Mob官方生成相应第三方登录方式对应的jar包工具
因为shareSDK分享与第三方登录集成方式类似(共用jar包),所以我就一起说了。 1.下载shareSDK分享的SDK 下载地址: https://developer.umeng.com/sdk 2.导入jar与res 打开开发文档并下载对应的SDK以及demo,下载SDK...
share_ffmpeg_SDK.rar
Tomcat-share下面的2个sdk-2,Tomcat-share下面的2个sdk-2
share.js自定义分享到第三方SNS平台
share.js自定义分享到第三方SNS平台.zip
share.js是一款社交SNS分享插件,目前支持的平台由QQ空间、、微博、google、in、tweeter等。而且图标也可以自定义