现在的很多网站和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//微博时,可以扫码的话,就不要选择输入账号 密码了,扫码更安全。