一个不用password的用户系统

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

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

然而总会有须要自己管理用户的时候,尽管能够採用各种安全的措施去保护这些用户数据,比方用更安全的password散列算法什么的,但不妨不要有password,没有password就无从泄露了。

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

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

基本流程是这样:

用户使用email登录。假设是新用户。就用这个email注冊,用户注冊完即能够使用。

那么想设置password怎么办?注冊时会有提示,假设要设置password请查收邮件。

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

设置password的链接,Google Authenticator二维码。Android/iOS版的Google Authenticator安装链接加上设置说明。

设置方法:

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


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

丢失Google Authenticator以后重置password也非常easy。仅仅要又一次生成一个二维码并重发邮件就可以。

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

当然眼下仅仅是一个设想,抽出时间写个DEMO试试。


原文地址:https://www.cnblogs.com/wgwyanfs/p/7136761.html