卢松松博客

网站的无密码登录

 人参与 | 时间:2012年10月04日 16:25

大部分网站,都要求用户登录。

常见的做法,是让用户注册一个账户。

网站的无密码登录 好文分享 第1张

这种做法并不让人满意。

对于用户来说,每个网站必须记住一个密码,非常麻烦;对于开发者来说,必须承担保护密码的责任,一旦密码泄漏,对网站的业务和信誉都是巨大打击。

所以,很早以前,人们就开始设想"无密码登录"(password-less login)。这对用户和网站,都将是极大的减负。

本文先回顾"无密码登录"的几种常见做法,然后探讨一种最简单的实现。

一、OpenID

OpenID是最早提出的一种无密码登录。

网站的无密码登录 好文分享 第2张

它的设想是这样的:互联网上每一个网址(URL),都指向一个独一无二的网页,这说明网址具有唯一性。因此,可以用网址来标识用户。

所以,使用OpenID的网站,不要求用户输入"用户名",而要求用户输入一个代表其身份的网址。然后,向该网址进行求证,如果得到证实,就允许用户登录,从而实现"无密码登录"。

OpenID有两个很大的缺点:一是需要服务器端支持,二是使用网址表示身份,违背直觉,普通用户难以理解。因此,始终无法得到推广。

二、第三方账户

OpenID的实质,是让第三方网站认证用户身份。那么很显然,这等同于用户在第三方网站登录。

因此,可以直接告诉用户,使用第三方帐号登录(前提是对方支持OpenID)。

网站的无密码登录 好文分享 第3张

这样做的优点是比较直观,用户容易接受;缺点是自身的业务,从此多多少少要依赖第三方网站。比如,现在很多网站使用Facebook帐号登录,一旦Facebook出现故障,这些网站都会受到影响。

三、Persona

去年,Mozilla提出了Persona方案,号称是无密码登录的终极解决方案。

网站的无密码登录 好文分享 第4张

它与OpenID异曲同工。后者用网址标识用户,它用Email标识用户。用户键入Email地址以后,网站向Email服务器请求认证。

虽然这种方案还处在推广期,效果有待观察。但是,我目前不太看好它。一则,它的技术要求和流程,比OpenID更复杂,无法用一句话讲清楚;二则,它要求服务器端支持,很难想象世界上大部分Email服务器都会部署Persona代码。

四、OAuth

OAuth协议其实与"第三方帐户"是一回事。

网站的无密码登录 好文分享 第5张

"第三方账户"是第三方网站提供用户身份认证,属于"认证"服务(authentication);OAuth则是更进一步,第三方网站允许你直接操作它的用户数据,属于"授权"服务(authorization)。

因为涉及到用户数据的改变,所以OAuth认证比Openid认证要求更严格。通常,只有针对某个第三方网站的外部服务,才需要用到OAuth;如果只是单纯地区分用户身份,其实没必要用它。

五、Email一次性登录

上面四种登录方法,是目前主流的"无密码登录"。下面,我想介绍一种最简单的实现,它是美国程序员Ben Brown在今年7月份提出来的。

他的做法很简单。用户登录的时候,只显示一个Email地址输入框。

网站的无密码登录 好文分享 第6张

用户输入Email地址以后,网站就向该地址发出一封邮件,里面包含了一个登录链接。用户点击这个链接,就证明他/她确实是这个邮箱的主人,身份有效,从而实现登录。

网站的无密码登录 好文分享 第7张

登录链接只在一段时间内有效,但是可以通过cookie,让用户长时间处在登录状态。如果cookie失效,则重新向用户邮箱发出另一个登录链接即可。

由于整个认证过程,都通过电子邮件完成,彻底实现"无密码登录",而且操作流程很自然,易于理解。更重要的是,它使用现有的Email协议,不需要服务器端部署新的代码,具有最好的兼容性。

主要缺点是,它需要用户额外查看一次邮箱,稍显麻烦;它也不适合那种用户无法打开Email的场合,比如在朋友家中上网。因此,使用它的网站,还必须部署备用的登录方式。

总的来说,我觉得这是一个简单易行的好方法,以后做网站的时候,打算尝试一下。

想听听大家的意见,你觉得这种方法可行吗?

本文来源:阮一峰的网络日志

顶: 0踩: 0

来源:,欢迎分享,(QQ/微信:13340454)

必填

选填

选填

◎已有 28 人评论,微信:QQ13340454

1楼高清美女图片  2014-04-01 19:16:34
不明觉厉
顶: 0踩: 0 回复
2楼内涵图  2014-03-04 06:26:54
又涨姿势了
顶: 0踩: 0 回复
3楼山西鱼男人seo  2012-01-24 21:39:21
哈哈 经典呢
顶: 0踩: 0 回复
4楼广州seo  2013-05-27 12:37:02
每天都来看看,希望从你这里学到东西,今天有收获了
顶: 0踩: 0 回复
5楼广州seo  2013-05-21 10:12:57
百度排名是门很深的学问
顶: 0踩: 0 回复
6楼广州seo  2013-03-04 10:13:49
沒有搶到沙發,鬱悶中……
顶: 0踩: 0 回复
7楼花都建站  2012-12-13 20:15:48
原来是这样,一直困惑中dd
顶: 0踩: 0 回复
8楼龙三公子  2012-11-29 16:24:29
关键是第一次注册的信息问题,然后再取值于信息识别认证。
顶: 0踩: 0 回复
9楼花都建站  2012-11-11 18:44:38
小站在这方面一点优势也没有啊
顶: 0踩: 0 回复
10楼广州seo  2012-11-10 10:19:57
原来是这样啊。顶了。
顶: 0踩: 0 回复
11楼广州seo  2012-11-09 20:17:32
分析的很精彩
顶: 0踩: 0 回复
12楼花都建站  2012-11-06 21:38:41
不是很多,不过你说的这些就已经非常受惠
顶: 0踩: 0 回复
13楼门业人才网  2012-10-09 13:42:06
都是好麻烦,为什么非得搞这些呢
顶: 0踩: 0 回复
14楼股民资源  2012-10-06 23:07:31
这个是什么啊
顶: 0踩: 0 回复
15楼蓬勃主机  2012-10-06 21:32:44
看起来很不错的的样子 呵呵《《《《《《
顶: 0踩: 0 回复
16楼免费天空网  2012-10-05 19:32:41
这样不安全吧
顶: 0踩: 0 回复
17楼广州SEO  2012-10-05 17:18:49
有见到过有些网站不用密码都可以直接登入了!
顶: 0踩: 0 回复
18楼足球直播  2012-10-05 16:21:24
用网址标示用户,这个很强大!
顶: 0踩: 0 回复
19楼后箱盖  2012-10-05 14:31:57
现在很多的用第三方登陆,的确是挺方便的
顶: 0踩: 0 回复
20楼原创文章  2012-10-05 13:14:48
感觉这样很酷!
顶: 0踩: 0 回复
21楼励志文章网  2012-10-05 08:44:31
这种方法太危险
顶: 0踩: 0 回复
22楼虚拟主机服务商  2012-10-05 01:19:40
国外网站就是创新
顶: 0踩: 0 回复
23楼脚气好啦  2012-10-04 22:01:00
还是用第三方的实用性好一些
顶: 0踩: 0 回复
24楼闪闪的星  2012-10-04 21:50:51
可以专门设置个用来接收登录信的邮箱,这样虽然和使用同一密码一样不安全,又需要登录邮箱,不过确实比其他方法好了些。
顶: 0踩: 0 回复
25楼爱撸小杰  2012-10-04 20:43:22
这些都是国外的,不实用!
顶: 0踩: 0 回复
26楼chonghua  2012-10-04 20:00:56
什么时候支持指纹或者虹膜!那就方便了!
顶: 0踩: 0 回复
27楼威客任务  2012-10-04 19:10:29
个人觉得不看好无密码登录,无论你使用哪一种方法,都在存极大的困难,首先是舆论监管的难题,二是用户的安全性如何保障?
顶: 0踩: 0 回复
28楼养生一族养生网  2012-10-04 18:49:47
我只能说各有各的好,如果让用户注册,可以减少一些垃圾信息!不注册虽然方便了,但是垃圾信息感觉会多点!
顶: 0踩: 0 回复
29楼西狂博客  2012-10-04 18:09:04
转载了
顶: 0踩: 0 回复
30楼两对半  2012-10-04 17:25:42
用QQ登录是目前最方便的方法,不如算法实现用QQ登 录

顶: 0踩: 0 回复
31楼闵非凡  2012-10-04 17:15:19
觉得哪一种都不方便,邮箱目前最好吧,不过还是要验证邮件。。
顶: 0踩: 0 回复