我已经使用 spring security 设置了 2FA。问题是,目前必须以与用户名/密码相同的形式输入 2FA 代码。有没有办法先询问用户名和密码,然后,如果它们有效,再询问 2FA 代码?
最佳答案
我在 angularJs 中做了同样的事情。 逻辑: 当用户启用 2FA 时,在仅使用用户名和密码提交表单时,我没有返回错误的凭据响应 (401) 或成功响应,而是返回状态代码 (403),表明服务器理解请求但拒绝执行请求.
当 Angular 收到这个 403 状态时,它会隐藏用户名和密码字段并显示 OTP 字段。此时,用户名和密码仍然作为有角度的对象存在,但只是隐藏了。
当用户输入 OTP 并单击提交时,我再次进行邮寄调用,这次传递用户名、密码和 OTP。
关于java - 2FA 的 Spring Security 登录 - 首先检查用户名和密码,然后在需要时询问 2FA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42843367/