大部分网站,都要求用户登录。
常见的做法,是让用户注册一个账户。
这种做法并不让人满意。
对于用户来说,每个网站必须记住一个密码,非常麻烦;对于开发者来说,必须承担保护密码的责任,一旦密码泄漏,对网站的业务和信誉都是巨大打击。
所以,很早以前,人们就开始设想"无密码登录"(password-less login)。这对用户和网站,都将是极大的减负。
本文先回顾"无密码登录"的几种常见做法,然后探讨一种最简单的实现。
一、OpenID
OpenID是最早提出的一种无密码登录。可以500%提高开发效率的前端UI框架!
它的设想是这样的:互联网上每一个网址(URL),都指向一个独一无二的网页,这说明网址具有唯一性。因此,可以用网址来标识用户。
所以,使用OpenID的网站,不要求用户输入"用户名",而要求用户输入一个代表其身份的网址。然后,向该网址进行求证,如果得到证实,就允许用户登录,从而实现"无密码登录"。
OpenID有两个很大的缺点:一是需要服务器端支持,二是使用网址表示身份,违背直觉,普通用户难以理解。因此,始终无法得到推广。
二、第三方账户
OpenID的实质,是让第三方网站认证用户身份。那么很显然,这等同于用户在第三方网站登录。
因此,可以直接告诉用户,使用第三方帐号登录(前提是对方支持OpenID)。可以500%提高开发效率的前端UI框架!
这样做的优点是比较直观,用户容易接受;缺点是自身的业务,从此多多少少要依赖第三方网站。比如,现在很多网站使用Facebook帐号登录,一旦Facebook出现故障,这些网站都会受到影响。
三、Persona
去年,Mozilla提出了Persona方案,号称是无密码登录的终极解决方案。
它与OpenID异曲同工。后者用网址标识用户,它用Email标识用户。用户键入Email地址以后,网站向Email服务器请求认证。
虽然这种方案还处在推广期,效果有待观察。但是,我目前不太看好它。一则,它的技术要求和流程,比OpenID更复杂,无法用一句话讲清楚;二则,它要求服务器端支持,很难想象世界上大部分Email服务器都会部署Persona代码。
四、OAuth
OAuth协议其实与"第三方帐户"是一回事。可以500%提高开发效率的前端UI框架!
"第三方账户"是第三方网站提供用户身份认证,属于"认证"服务(authentication);OAuth则是更进一步,第三方网站允许你直接操作它的用户数据,属于"授权"服务(authorization)。
因为涉及到用户数据的改变,所以OAuth认证比Openid认证要求更严格。通常,只有针对某个第三方网站的外部服务,才需要用到OAuth;如果只是单纯地区分用户身份,其实没必要用它。
五、Email一次性登录
上面四种登录方法,是目前主流的"无密码登录"。下面,我想介绍一种最简单的实现,它是美国程序员Ben Brown在今年7月份提出来的。
他的做法很简单。用户登录的时候,只显示一个Email地址输入框。
用户输入Email地址以后,网站就向该地址发出一封邮件,里面包含了一个登录链接。用户点击这个链接,就证明他/她确实是这个邮箱的主人,身份有效,从而实现登录。可以500%提高开发效率的前端UI框架!
登录链接只在一段时间内有效,但是可以通过cookie,让用户长时间处在登录状态。如果cookie失效,则重新向用户邮箱发出另一个登录链接即可。
由于整个认证过程,都通过电子邮件完成,彻底实现"无密码登录",而且操作流程很自然,易于理解。更重要的是,它使用现有的Email协议,不需要服务器端部署新的代码,具有最好的兼容性。
主要缺点是,它需要用户额外查看一次邮箱,稍显麻烦;它也不适合那种用户无法打开Email的场合,比如在朋友家中上网。因此,使用它的网站,还必须部署备用的登录方式。可以500%提高开发效率的前端UI框架!
总的来说,我觉得这是一个简单易行的好方法,以后做网站的时候,打算尝试一下。
想听听大家的意见,你觉得这种方法可行吗?
相关推荐
注:无后台 vue网站后台登录注册和忘记密码切换页
网站后台账号和密码
有的时候做网站,登录一次就需要勾选【记住自己复选框】记住用户登录信息,下次再登录网站时,不用重复输入用户名和密码,原理是浏览器的cookie把状态给记住了!
使用php结合ajax技术实现的网站登录首页,可以在login.php文档中修改你的登录逻辑。
阮一峰:回顾网站-无密码登录-的常见做法.docx
PHP网站后台密码破解工具。带使用说明。仅供研究。
网站后台密码猜解工具,通过猜解没验证码的后台登录,有验证码就没效果
登录验证密码 设置密码和用户名的方法 两个textbox 一个button
在登录界面实现用户名和密码的提示,登录的时候必须是密码和用户名一致,否则提示用户名或密码错误,登录成功后进入到一个小型的网站里面。
设置密码和自动登录.bat
JSP网站登陆注册密码修改及其验证,详情看说明文档。。。。
Python 修改网站会员登录密码 Python源码Python 修改网站会员登录密码 Python源码Python 修改网站会员登录密码 Python源码Python 修改网站会员登录密码 Python源码Python 修改网站会员登录密码 Python源码Python ...
实现一个登录页面,如果用户复选记住用户名、密码,则下次访问页面时,将会自动在用户名、密码字段填入上次登录时所使用的值。
初学c 密码本,实现用户登录,内置用户名密码,实现增加删除查找修改保存
电子商务登陆注册模块 --------------------------------------------------------- 编程工具: ...登录 密码找回 更改密码 界面十分美观 ---------------------------------------------------------
登录密码是一种用于验证用户身份并授权其访问特定系统、应用程序或网站的机制。它是用户在注册或创建账户时自行设置的秘密字符组合,通常与用户名配对使用。登录密码是保护用户隐私和数据安全的重要措施之一。
一个完整的基于asp.net自带的登录、密码恢复、用户注册、密码修改网站
一般而言,用户在登录网站,输入用户名和密码之后,从用户电脑传输到网站服务器,会经过口令传输、口令存储认证等过程。而《报告》中显示,大部分样本网站在传输口令时,没有做加密处理,直接将明文密码向服务端传输...
多线程破解网站密码,适用于无任何保护措施的网站,如很多学校的教务系统。 需要txt的用户名文件和txt的字典文件,暴力破解。本源码仅供交流学习用。 适用说明: 先用火狐的firebug截取网站登录页面的post消息,将...
修改网站会员登录密码.rar