被一位朋友问到这个问题。
他说「明明可以同时显示用户名+密码的输入框,现在还要用户多一个点击步骤,不是多此一举吗?而且对于使用密码管理器自动填充的用户也很不友好,要手动触发两次填充。」
个人觉得这种设计,或许是为了在第一步就检查用户名 /邮箱是否被注册,如果没有注册,就跳转注册界面。但传统的“用户名+密码框同时显示”的设计和这一目的也并不冲突,依然可以通过提示文本引导未注册用户去注册。
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 22
这个设计我记得最早是在微软邮箱( 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 2
还是没有完全理解,就算不分两步也完全可以做到避免「可能把密码泄露给微软」「把微软的用户密码泄露给第三方企业」这种事,登录时先后调两个接口就是了
|
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 iPhone
会不会有这种可能:用户名和密码如果一起提交,一起校验的时候要对密码做 hash 之类占用资源,分开查询需要查两次数据库。
|
15
sorcerer 2023-04-21 18:10:11 +08:00 via Android
是挺烦的,尤其是当我用 bitwarden 填写帐号密码时。。
|