现在的很多网站和App常见的几种登录方式是:
传统的账号 密码登录手机号 动态验证码登录QQ/微信/微博等第三方授权登录
今日头条网页端登录界面
抛开传统账号 密码的方式不说,手机号 动态验证码的方式我在上一篇文章中也有提过,今天我们来着重讨论一下使用QQ/微信/微博等的第三方授权登录。
什么是第三方授权登录?简单来说,就是一个软件借用别的软件(第三方)的账号体系来建立自己的账号体系以便快速登录。即可以省去用户在不同的平台中维护各自的账号和密码的麻烦,也可以帮助软件快速的建立自己的账号体系,并能更好地提高第三方软件的知名度,可以说是一个三赢的方案,但现在的很多软件其实已经把第三方授权登录玩得似是而非了!
怎么才能接入第三方授权登录?我们需要的QQ/微信/微博等的第三方授权登录是怎么实现的呢?为了更好的分析这个问题,我们还是从软件开发的角度来看看:
并不是所有的平台都支持让别的软件使用自己的账号。
首先,它的知名度要够高,国内像QQ/微信/微博这种用户基数大的平台,国外的像什么Google/Facebook/Github之类的平台。
其次,也是最主要的,这些平台愿意开放,愿意共享,你才能接入。
最后,是技术层面的支持,最常见的是基于OAuth协议(现在基本上都是基于OAuth2.0协议)搭建自己的开放平台。
注意,开放平台和原生平台是两回事,一般情况下,原生平台不会将所有的内容都开放,不然他自己还怎么玩?比如微信的开放平台,简单的可能只让你得到用户的一些基本资料,像好友列表,钱包什么的是不会让你拿到的,具体的要看用户的授权内容。
现在,大部分的开放平台都是基于OAuth2.0协议搭建的,当一个软件通过这些开放平台去获取用户信息时,需要得到用户的确认并授权,只有用户同意授权之后,这个软件才会通过得到的访问令牌(AccessToken)获得最终用户在开放平台的信息!
这里有两个方面的重要内容:
一是访问令牌(AccessToken),当用户授权软件去使用QQ/微信/微博的账号信息时,软件是不会得到用户的账号密码的,这对用户来说,是安全的。软件只是拿着这个访问令牌(AccessToken)去QQ/微信/微博的开放平台去获取内容。
二是用户的授权,也就是用户允许软件访问的内容。拿一般的登录来说,当软件通过QQ/微信/微博登录时,首先会跳转到QQ/微信/微博这些软件的登录界面,当你输入正确的账号和密码登录QQ/微信/微博后,会弹出一个授权信息的确认界面(一般是多选框,列出所有的授权信息),让你了解你授予了那个软件多少权利去使用你的账号。
今日头条微信授权登录界面
如: 今日头条使用微信授权登录时,会出现如此的确认界面,上面很清楚的可以看到: 今日头条可以获得我的微信的公开信息(昵称,头像,地区及性别),仅此而已。
是不是所有软件都可以接入第三方授权登录呢?理论上说,是的。
但接入第三方登录也是需要一定的条件的,它的一般流程如下:
第一步,软件开发商需要找到第三方的开放平台(如微信开放平台,QQ互联,微博开放平台等),注册成为开发者。
第二步,注册应用(提供应用名称,简介,Logo等相关信息),等待平台审核。
第三步,申请权限(开放平台会根据你的软件确定你的权限),有些会跟第二步一起完成。
第四步,应用注册成功后,你会得到你的应用的标识信息。(一般为AppKey和AppSecret的组合)
第五步,根据开放平台提供的API,实现登录。
第六步,测试与发布。
具体的怎么获取授权码(Authorization Code),然后怎么换取访问令牌(AccessToken),怎么读取登录信息,属于专业的开发人员需要考虑的,开放平台中也都有详细的文档,我就不再赘述了。
“为什么说,所有的软件理论上都可以接入第三方授权登录呢?”
因为开放平台对所有的软件都是一视同仁的。
“那又为什么加个‘理论上’呢?”
因为开放平台有“严格”的审核机制。
审核机制一般也包括两部分内容:
一是对开发者的审核,不管是个人还是公司,都需要提供相关的资质(如个人实名认证,公司的三证合一等),有些还会缴纳一定的费用。以便以后万一出现问题的时候,有据可查。
二是对应用程序的审核,审核应用是否违反国家政策(包含敏感信息,包含反动言论,涉黄等),是否获取了不该获取的应用权限等。
所以说,只要是正规的应用,都能成功申请接入开放平台。
为什么说第三方授权登录被“玩坏”了呢?我们从第三方的授权登录的初衷来说,一个软件完全可以抛开自己的账号体系,打造轻量级的应用,不用担心账号密码泄露等安全问题,不用担心用户流失,减少设计成本等。
但是,现在第三方授权登录,已经不再是单纯的登录,更多的是绑定,我们也可以叫做伪登录。就是说,软件有自己的主体账号,你可以用软件的主体账号登录,也可以用第三方授权登录。当你第一次使用时,软件会根据你使用的第三方登录账号的信息,建立一个主体账号(也可以叫做内部账号),然后将第三方的登录信息和你的主体账号信息绑定到一起。
为什么会这样呢?众所周知,一个软件要做的好,用户是最重要的。如果全用第三方登录的账号,不建立自己的账号体系,那万一第三方账号体系奔溃了或是和第三方平台闹矛盾,人家不让你用了,该怎么办?更简单一点,万一第三方的服务器宕机了,登录不了怎么办?
所以说,很多软件的选择是:在自己的主体账号之上,绑定第三方的登录,如今日头条就是如此,你可以绑定QQ,微信,天翼账号等账号,登录的时候,既可以用手机号登录,也可以用QQ,微信,天翼账号等登录。
第三方授权登录安全吗?说了这么多,你肯定要问,我用QQ/微信/微博这些第三方账号登录,究竟安不安全?会不会泄漏隐私?
我可以很负责的告诉你,只要你的用法得当,跟用QQ/微信/微博是一样的安全;至于泄漏隐私的可能性,应该比直接输入手机号要小很多很多。
为什么呢?
第一,第三方授权登录,不会直接让你输入第三方账号的密码,需要跳转到第三方去登录。(所谓跳转,就是打开真正的QQ/微信/微博等的网站或App)。所以,你的QQ/微信/微博等的账号和密码是安全的。
第二,第三方授权登录,得到的信息有限,而且需要你的授权确认。(如今日头条使用微信登录,就只会得到昵称,地区,头像及性别等公开信息,当然了微信号也是可以得到的,未经授权的信息,软件是无法得到的,如你的好友列表,你的朋友圈,你的钱包等)。
那为什么又加个“用法得当”呢?
用法得当,就是你得保证,你所用的第三方软件(QQ/微信/微博)是从正规渠道下载的,或是从正规的网址打开的。
如果是手机中使用第三方授权登录,一定要保证跳转(打开)第三方软件(QQ/微信/微博),然后再输入登录信息。
如果是网页端使用第三方授权登录,一定要保证跳转之后的第三方软件的网址是正确的,然后再输入登录信息。(这个怎么保证呢?很多网站,包括QQ/微信/微博,都提供了扫码登录,能扫码登录的时候,绝对不要输入密码登录,这样你会很安全,)
总结
第三方授权登录,相对来说还是比较安全的,泄漏隐私的可能性也会大大降低,但你要特别注意一下几点:
使用QQ/微信/微博登录时,会跳转到QQ/微信/微博里面,然后在QQ/微信/微博里输入密码登录(手机上一般都会有免密登录,不是第一次登录可能看不到这一步)。在使用QQ/微信/微博登录时,会有软件可以获取的权限的说明,一定要看清楚,如果你觉得超出了你的接受范围,可以选择拒绝。在网页端登录QQ/微信/微博时,可以扫码的话,就不要选择输入账号 密码了,扫码更安全。第三方账号登录(QQ/微信/微博)申请步骤
一、QQ登录申请步骤1. 打开[http://connect.qq.com](http://connect.qq.com/), 并进入“管理中心”
2. 若用于网站登录,则选择“网站”;若用于app登录,则选择“移动应用”
3. 以网站为例,创建应用页面如下,填完基本应用信息后,有一个验证步骤,可以将鼠标放到“验证”按钮上查看具体方法
4. 此时可以拿到app id与app key,可以进行测试阶段开发了
5. 点击下图中的“信息编辑”,可以设定授权回调页面按照提示一步一下完成即可
6. 完成基本信息后,提交审核,一般1-3个工作日会有审核结果
二、微信申请步骤
1.打开 https://open.weixin.qq.com, 登录并进入“管理中心”,若用于网站登录,则选择“网站应用”;若用于app登录,则选择“移动应用”
2. 按照步骤一步一步完成信息
3. 注意:微信登录要上传一个信息表格,要盖章,审核时间为7个工作日
三、微博申请步骤
1.登录http://open.weibo.com, 从菜单中找到“微连接”。若用于网站登录,则选择“网站接入”;若用于app登录,则选择亩卖指“移动应用”
2. 以“网站接入”为例,点击“网站接入”-->“立即接入”
3. 验证网站所有权
4. 部署微连接,会得到app key与app sercet,此时就可以在本地进行测试了
5. 提交审核,迅配注意:此步需要身份验证
6. 在顶部导航中找到“我的应用”,进入后,配碧可以看到已经创建的应用及审核状态
7. 点击“应用名字”可以进入设定页面,在“接口管理”-->“授权机制”中可以设定授权回调页。
8. 其它部分请自行摸索
用qq、微信授权登陆第三方软件会泄漏隐私吗?
通过QQ、微信、微博等应用授权,授权后第三方网站仅能看到您的昵称、性别、头像等公开信息(不包括账户ID和其他个人信息),是很安全的。对于一些小网站、小论坛,鼓励大家使用第三方验证的方式登录,原配棚因除培尺则了免去注册步骤之外还有就是安全性的考虑:很多小网站没办法过多注意用户的账号安全的问题,所以选择大公司的第三方验证反倒能够保证安全,能有效避免“撞库”问题。
通过扫QQ、微信的验证二维码登录的,因为鉴权完全是QQ、微困弊信完成的,QQ、微信鉴权后,拉起第三方应用或者重定向到第三方网站,完全不会泄露用户信息
如果是第三方的APP或者网页要求直接输入QQ、微信的账户和密码,由第三方用账户密码向QQ、微信发起登录请求,那情况是不一样的,因为第三方的APP或者网页完全获取了你的账号和密码,甚至可以保存到自己的数据库。
这是要特别小心的,一切要求你输入QQ、微信密码的第三方的APP或者网页都不能相信!要特别小心钓鱼网页,有些钓鱼网页伪装成和QQ官网完全一模一样的,登录界面也一模一样,你不小心以为是QQ官网,用QQ号和密码去登陆,就悲剧了。利用好手机扫码和授权登录,能有效防止出现这种问题。