一个不用密码的用户系统

Posted 猛禽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个不用密码的用户系统相关的知识,希望对你有一定的参考价值。

很多年前云风设想过这样一个用户系统《为什么一定要有密码?》,我是挺赞同的。对我来说,用户系统是一个责任重大的东西,可惜很多国内厂商都不把这当回事。

之前做过一些小东西,基本上都是采用第三方登录的方式,比如用google账号登录。这样就把用户管理的麻烦事交给第三方去处理了,相信google这样的大厂能做得更好。

然而总会有需要自己管理用户的时候,虽然可以采用各种安全的措施去保护这些用户数据,比如用更安全的密码散列算法什么的,但最好还是不要有密码,没有密码就无从泄露了。

之所以有这种想法,是站在用户的角度:你可能觉得你的产品很重要,希望用户用更强的密码来保护他们在你产品中的数据,但从用户的角度上来说,他们的隐私比你的破产品重要得多,根本不想把重要的密码用在你的产品上,谁知道你的产品会不会被脱库然后成为社工数据的一部分,用一个低安全性的通用密码跟没有密码的安全性是一样的,甚至更差,那不如索性不要密码。

但是密码又必须是一个可选项,毕竟还是会有人觉得他们在你产品的数据也有点重要,但是又不想用跟别的地方一样的密码——毕竟还是有很多人不会去用密码管理工具的。我想到的一个办法就是OTP(一次性密码),比如 Google Authenticator 这样的现成的TOTP工具。

基本流程是这样:

用户使用email登录,如果是新用户,就用这个email注册,用户注册完即可以使用。

那么想设置密码怎么办?注册时会有提示,如果要设置密码请查收邮件。

邮件的内容就是以下几个东西:

设置密码的链接,Google Authenticator二维码,android/ios版的Google Authenticator安装链接加上设置说明。

设置方法:

下载安装Google Authenticator,扫描二维码添加账号,在设置密码的页面里输入刚才扫出来的Google Authenticator账号的一次性密码即可完成密码设置。

设置好密码以后再次登录就需要在输入完email之后输入Google Authenticator产生的一次性密码。

丢失Google Authenticator以后重置密码也很简单,只要重新生成一个二维码并重发邮件即可。

至于用户如果用了网易之类不安全的邮箱那就没办法了。

当然目前只是一个设想,抽空写个DEMO试试。

以上是关于一个不用密码的用户系统的主要内容,如果未能解决你的问题,请参考以下文章

不用密码的用户系统实现

TortoiseGit不用每次输入用户名和密码的方法

不用密码的用户系统实现

Mac无需输入密码设置用户自动登录的方法

Oracle用户密码含有特殊字符应当如何处理

TortoiseGit 连接Git服务器不用每次输入用户名和密码的方法