
被一位朋友问到这个问题。
他说「明明可以同时显示用户名+密码的输入框,现在还要用户多一个点击步骤,不是多此一举吗?而且对于使用密码管理器自填充的用户也很不友好,要手动触发两次填充。」
个人觉得这种设计,或许是为了在第一步就检查用户名 /邮箱是否被注册,如果没有注册,就跳转注册界面。但传统的“用户名+密码框同时显示”的设计和这一目的也并不冲突,依然可以通过提示文本引导未注册用户去注册。
1 luzemin 2023-04-21 14:04:06 +08:00 我最早在 Tumblr 见到 |
2 NoOneNoBody 2023-04-21 14:09:14 +08:00 不是前端开发 盲猜是需要生成客户端唯一标识,其中用户名是参数之一,在提交密码时一并提交 |
3 0TSH60F7J2rVkg8t 2023-04-21 14:10:35 +08:00 这个设计我记得最早是在微软邮箱( exchange ?)里看到的,因为账户系统其实是分开的,当输入用户名的时候,并不知道要把密码提交给后端哪个控制域去验证,所以出于安全和其它因素的考虑,做成了两个步骤。比如,当年微软的邮箱是可以有企业自己控制的,那么在这种情况下,如果是直接输入用户名和密码,可能把密码泄露给微软(或者反过来避免把微软的用户密码泄露给第三方企业)。那么登录在验证了邮箱属于谁之后,由设定调用让第三方去验证,避免了多出来的泄露问题。后期看到的就是 iCloud 的云上贵州,在 Apple.com 上输入邮箱后,再到下一个页面才需要输入密码,以便分辨登录用户属于谁,然后再提交密码。其实简单说,我个人认为就是单一入口的一个安全隔离措施。 |
5 cpsony 2023-04-21 14:17:13 +08:00 3# 应该是正解,目前很多应用都整合了 IdP ,先输入用户名,判断是 local user 还是 idp user ,再看是跳转还是直接输密码登录 |
6 NoOneNoBody 2023-04-21 14:19:45 +08:00 @ahhui #3 这个释疑靠谱 |
7 chengxy 2023-04-21 14:58:00 +08:00 Apple 不就是这样? |
8 mxT52CRuqR6o5 2023-04-21 15:02:20 +08:00 还是没有完全理解,就算不分两步也完全可以做到避免「可能把密码泄露给微软」「把微软的用户密码泄露给第三方企业」这种事,登录时先后调两个接口就是了 |
9 loszhang 2023-04-21 17:14:27 +08:00 apple ,google ,微软都有吧 |
10 loszhang 2023-04-21 17:20:58 +08:00 |
11 loszhang 2023-04-21 17:21:07 +08:00 |
12 wy315700 2023-04-21 17:22:53 +08:00 |
13 alne 2023-04-21 17:26:57 +08:00 头次见就是微软 |
14 wangxiaoaer 2023-04-21 17:59:23 +08:00 via iPhne 会不会有这种可能:用户名和密码如果一起提交,一起校验的时候要对密码做 hash 之类占用资源,分开查询需要查两次数据库。 |
15 sorcerer 2023-04-21 18:10:11 +08:00 via Android 是挺烦的,尤其是当我用 bitwarden 填写帐号密码时。。 |