很多网站提供用微博和 QQ 账号登录,好处是什么呢?

标签: 网站 微博 qq | 发表时间:2014-08-20 12:30 | 作者:林灿斌
出处:http://www.zhihu.com

谢邀!8月下旬刚好搞过OAuth。


首先反对目前赞同数超过1的除了我以外的所有回答。

  • 回答下题主本身的问题:很多网站提供用微博和QQ账号登录,好处是什么呢?

好处是当你登陆了QQ客户端或者微博时,用户可以不输入账号密码 直接点击(无需输入任何数据)使用绑定的QQ号或微博账号 登陆。这个需求是很大的,我网站设立初期就有很多人要求我添加这个功能。
这个我做过调查,确实很多用户需要,因为登录了QQ客户端,在那些网站就不需要输入密码登陆了。没调查就没有发言权。
————————————以下为战斗部分——————————————

1、 @Benjamin 提到的 “诱使用户误以为不用注册账号就能登录他们的网站了,有利于吸引用户。” 这个其实 QQ互联官方的要求就是:“点击登陆后,要直接就是登陆,不能要求设置账号密码什么的”,不然无法通过审核,我前期就是这样无法通过审核,后期在代码里动了点手脚才过的,审核通过后又改了回去。


设置昵称这个前期小小麻烦,以后的还是会很方便的,毕竟以后就不用再输入了。
2、 @DecKen 的说法,“所谓的使用微博和QQ账号登陆,无非是网站想获取你更多的信息(QQ号,微博)”,也是错误的。OAuth协议返回给接通微博登陆或者QQ登陆的网站的登陆数据,只有一串可以叫做openid的字符串,并没有QQ账号,当然你可以拿着openid等数据继续通过腾讯的OpenAPI继续获取更多资料(JSON格式),例如昵称什么的,但是还是没有QQ号。例如get_user_info的API,只能取得如下数据。
    {
 
"ret":0,
 
"msg":"",
 
"nickname":"Peter",
 
"figureurl":"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/30",
 
"figureurl_1":"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/50",
 
"figureurl_2":"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/100",
 
"figureurl_qq_1":"http://q.qlogo.cn/qqapp/100312990/DE1931D5330620DBD07FB4A5422917B6/40",
 
"figureurl_qq_2":"http://q.qlogo.cn/qqapp/100312990/DE1931D5330620DBD07FB4A5422917B6/100",
 
"gender":"男",
 
"is_yellow_vip":"1",
 
"vip":"1",
 
"yellow_vip_level":"7",
 
"level":"7",
 
"is_yellow_year_vip":"1"
 
}
基本只有昵称、各种尺寸的头像的URL,性别,黄钻相关的信息。
另外其实我很奇怪知乎很多完全没有网站开发经验的人也来回答这种问题。
以下为我QQ登陆数据表所储存数据,可以看到我只保存了openid,并没有QQ号,不是不想保存,是没有API可以获取到这种资料。

openid每个用户各不相同,据我推测应该是用QQ号以某种算法加密出来的,可能有一一对应的关系。看起来应该是用MD5加密出来的密文,我试过加密自己的QQ号,结果与上面不符合,加密两次,也不对,如果是MD5+salt之类的,那么可以认为是无法通过openid逆向工程得出QQ号的。

当然,新浪微博的API权限就高很多了,甚至可以用那些API,做出Fuubo这样的东西,所以获取微博的地址是可以办到的。当然,这也是合理的,因为微博的定位就是微型博客,博客不同于QQ、手机号码这样的私人联系方式,博客在不作隐私设置的前提下对网络上的任何人都是公开的,因此获得新浪微博的地址并无任何不妥。
像我的新浪微博地址: http://weibo.com/lincanbin 我就可以非常大方地放出来让你们关注。

3、所以 @段炼 的说法,也是错误的,OAuth协议只返回openid,并不返回登陆密码。
4、 @安雅 的“直接引入原qq好友关系”这个功能是不存在的。
5、 @VrWorking 的关于移动终端登陆的说法(原文:“如果在手机或平板客户端 App,就比较难了。因为 App 的特点你是看不到地址栏的,因此无法确认这个登录页面是不是腾讯的。只能看这个 App 是否是官方的,和是否具备足够的知名度。满足这两个条件下的 App 开发商不会、也没必要去偷取你的账户信息(也不绝对,比如 CSDN 脑残程序员偷偷的保存用户密码明文到数据库,结果城门失火殃及池鱼)。”),其实腾讯是有另一个API,可以调用QQ客户端登陆的,并非只有Webview一个方法。不过目前这个只支持安卓和IOS,WP等小众系统是不支持的,如下图:

使用了这个API的,大家比较熟悉的就有“天天爱消除”、“唱吧”等等,不需要使用WebView跳转到一个网页手动输入账号密码登陆,也是非常方便的。不过SSO登陆这个API会启动QQ客户端,响应在一些手机上相对比WebView较迟缓。
6、 @痴梦 说的“婊子立牌坊”,也是错误的说法,首先腾讯的QQ互联要求(即“登陆后不需添加任何新的即可直接登陆”)只适用于留言板等应用,而论坛之类的应用,并不适合。
像各位想保护隐私嘛,所以腾讯返回给与QQ互联互通网站的信息也是有限的,有用的只有一个opedid和name(昵称)。可是论坛为了区分各个用户, 必须有identifie,对外展示,所以至少需要再设定一个昵称。可是一个拥有多套登陆系统(必须有多套,最起码自己得有一套,不然就丧失独立性了)的网站,把Openid作为mainkey显然是不合适的,name的话更不用说,是绝对不能作为identifie的——因为有含有非法字符或者过长的可能性,也可能重复, 有的网站也有提供UID登陆或者邮箱地址登陆的功能,如果直接把QQ昵称作为username入库,就可能导致该用户通过常规途径登陆失败。

简言:把腾讯返回的name作为username入库前需要做合法性检测,所以用户名是必须在登陆后再次填写的。除非你打算全站只用QQ这个登陆系统,而不采用自己独立的账号系统。

(合法性检测:长度,不能全为数字,不包含非法字符,数据库user表同字段中不存在相同数据。)

当然, 有些网站像知乎,是允许使用已存在的name的并且可以任意修改的,像我叫林灿斌,你也可以在知乎注册个号叫林灿斌,你QQ昵称是林灿斌,用QQ登陆后知乎自动帮你创建一个name是林灿斌的号, 这样的网站逻辑就可以不输入新昵称直接登陆。而大多数网站,像大部分论坛、微博……name都必须是唯一的,这样就不可能实现直接登陆,有些是历史遗留问题,有些是本意如此。

最后按照知乎答非所问的风气,最后应该会有人出来普及OAuth协议然后获得高票赞同吧,建议那些并没有相关经验的回答者等那种普及知识的回答出现并且看完再作答。
————————————————————————
最后,其实QQ的审核规定还是挺严格的,不过QQ旗下的Discuz是不需要遵照这个规定的。

因此很多使用DIscuz的论坛,都这样,造成了混乱,与腾讯本意相违,这里抄送腾讯反省一下。
————————————————————————
另外还是有好网站的,像我的网站,用QQ或者微博登陆,只需要设置一个在我站显示的昵称(原因见第6条),并不需要设置密码(当然也在设置里提供了设置密码的选项)。那些让那么多人骂娘的网站,多数是采用了一家不遵守腾讯QQ互联规定的公司旗下的Discuz的程序。

— 完 —
本文作者: 林灿斌

【知乎日报】 你都看到这啦,快来点我嘛 Σ(▼□▼メ)

此问题还有 38 个回答,查看全部。
延伸阅读:
有哪些网站是支持新浪微博,腾讯QQ登录的?
知乎为什么还不推出用新浪微博账号直接登录功能?其他网站为何提供?

相关 [网站 微博 qq] 推荐:

很多网站提供用微博和 QQ 账号登录,好处是什么呢?

- - 知乎每日精选
首先反对目前赞同数超过1的除了我以外的所有回答. 回答下题主本身的问题:很多网站提供用微博和QQ账号登录,好处是什么呢. 好处是当你登陆了QQ客户端或者微博时,用户可以不输入账号密码 直接点击(无需输入任何数据)使用绑定的QQ号或微博账号 登陆. 这个需求是很大的,我网站设立初期就有很多人要求我添加这个功能.

QQ是IM附带微博功能,”微博桌面”是微博附带IM功能

- 談何容易 - 36氪
有一天我问一朋友,为啥腾讯微博还不出桌面客户端. 他愣了一下,然后我突然想到,腾讯微博为啥要出桌面客户端,它已经集成到了QQ上,QQ是一个IM工具,但现在它附带了微博的功能. 不到一个月前,新浪推出了微博桌面,支持即时聊天,当时大家就说,新浪要开始抢腾讯的饭碗了. 最近,微博桌面进行改版升级,我只能说,它更像 QQ 了.

全球社交媒体排行榜:QQ空间第四 新浪微博第五

- - 行业资讯
   BV4社交媒体排行榜.   3月7日消息,据国际著名第三方认证机构法国国际检验局(BV4)发布的品牌报告显示,Facebook以291亿美元的品牌价值成全球最有影响力的社交媒体品牌,腾讯Qzone排名第四.   在发布的30家社交媒体品牌里,中国品牌占8席,腾讯Qzone以112亿美元的品牌市值列总榜单第四,新浪微博第五(品牌价值39.94亿美元),腾讯微博第八(品牌价值35.26亿美元),人人网第12(品牌价值26.16亿美元),腾讯朋友第14(品牌价值21.93亿美元),开心网第18(品牌价值18.91亿美元),土豆网第21(品牌价值15.43亿美元),优酷第24(品牌价值13.94亿美元).

中美各大社交网站的差异,最牛逼的就是QQ!!

- Dallas - 乐淘吧
中美各大社交网站的差异,最牛逼的就是QQ. 如果您的阅读器看不到图片或视频,请移步原文链接:中美各大社交网站的差异,最牛逼的就是QQ. 欢迎订阅乐淘吧:http://feeds.letaoba.info. 史上最牛脑筋急转弯: 小红帽为什么是平胸. 关于中美合作所的一个历史误会:渣滓洞暴行与其无关.

[来自iPc.me] 100句雷人经典的QQ签名与微博语录,你有看过多少?

- Kevin - iPc.me
刚才一MM打电话给我:“来我家吧,没人. 敲了半天门,发现真的没人;我在马路边捡到10块钱,把它交到网管帅哥手里面,帅哥拿着钱,对我把头点,我高兴的说了声,冲个会员……. [ 请大家更新订阅地址 http://feed.ipc.me ]. iPc.me 猜你可能还会喜欢:2010网络流行语出炉:给力、神马都是浮云上榜.

QQ表情 for iPad

- 小趴 八足趴 八足 ramener - 腾讯CDC
  QQ HD for iPad 2.2已经发布了~其中全新的高清QQ表情也跟大家见面了.   在这里奉上新表情的安装包同时还有赠品哟亲~.   QQ HD for iPad 2.2 表情菜单效果图.   QQ表情for iPad.   表情安装包在附件中~希望大家喜欢~.   QQ HD for iPad 2.2 表情安装包 下载.

Mac QQ V1.1.1 发布

- KNocTis - cnBeta.COM
1.解决发图片视频崩溃问题;2.修正部分用户反馈bug;3.支持10.5系统下的视频;. 4.大幅优化各个环节的资源使用. 新增视频功能、自定义表情、讨论组、代理登陆等功能.

国内观光:360 PK QQ

- Will - 煎蛋
# sein:我就出差一天,在宾馆打开新浪微博后听说这个事情无比震惊. 网易专题:360决战腾讯QQ. 新浪微薄话题:360~腾讯~qq. update / 几篇重量级评论. Keso:丛林时代怎样做老大. @腾讯公司:《致广大QQ用户的一封信》当您看到这封信时,我们刚刚作出了一个非常艰难的决定. 在360公司停止对QQ进行外挂侵犯和恶意诋毁之前,我们决定将在装有 360软件的电脑上停止运行QQ软件.

班级QQ群变迁

- Deco - cnBeta.COM
A:各位同窗,我被公司派到无锡,搞一个地铁项目,手机号是134××××××××,请惠存. B:各位亲朋好友,我现驻扎首都,已成功打进公司内部,在做一个大项目,好几个亿. C:各位兄弟姐妹,我过一个月要出国了,公司在美国有个项目,我要过去组织施工,我会想你们的,同时我会好好欣赏那边的美女.

QQ新选择,CreQQ:QQ for chrome

- Tony - UbuntuSoft
CreQQ是一个Chrome扩展:. 支持了默认表情、可以显示好友头像、获取好友在线状态成功、更改了登录窗口、添加了注销功能、登录过程中的取消功能和删除聊天记录功能. 比较遗憾地是依然不支持自定义表情、不支持群功能,另外注销和取消功能可能还有些小问题,不过这已经不影响正常使用了. 作者博客:http://sneezry.com.