您的位置: 旅游网 > 生活

回顾网站嘚无密码登录方法如何最简单实现7

发布时间:2019-07-09 11:55:02

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

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

这种做法并不让人满意。

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

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

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

一、OpenID

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

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

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

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

二、第三方账户

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

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

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

三、Persona

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

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

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

四、OAuth

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

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

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

五、Email一次性登录

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

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

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

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

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

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

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

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

(完)

作者: 阮一峰

日期: 2012年10月 3日

来源:

seo论坛推广的技巧,你知道几个
开微店的步骤
小程序做活动
猜你会喜欢的
猜你会喜欢的