我很久以前读过这篇关于如何使用无密码身份验证系统的文章,这对我来说听起来是个好主意。我什至将它构建在一个有趣的小应用程序中以获得乐趣。
引用这篇文章,它是这样工作的:
以下是无密码身份验证更详细的工作方式:
当用户尝试登录您的应用程序或网站时,不要询问他们的密码,而只需询问他们的用户名(或电子邮件或手机号码)。
在后端服务器上创建一个临时授权码并将其存储在您的数据库中。
向用户发送带有包含代码的链接的电子邮件或短信。
用户单击打开您的应用程序或网站的链接并将授权代码发送到您的服务器。
在您的后端服务器上,验证代码是否有效并将其交换为一个长期存在的令牌,该令牌存储在您的数据库中并发送回以存储在客户端设备上。
用户现在已登录,并且不必再次重复此过程,直到他们的令牌过期或他们想要在新设备上进行身份验证。
那你们怎么看?这真的是基于密码的身份验证的现实替代方案吗?
编辑:
如前所述,如果手机被盗,可能会访问您的电子邮件和短信,这会危及该系统。但基于密码的系统也是如此,您可以在其中单击“忘记密码”链接以接收更改密码的电子邮件,并且还可以安装 Google Authenticator。因此,在我看来,手机被盗是密码和无密码系统的弱点。
也许问题应该是:
无密码身份验证是否会增加基于密码的身份验证系统中不存在的风险场景?