我已经设置2FA弹簧安全。问题是,目前必须以与用户名/密码相同的形式输入2FA代码。有没有办法首先要求输入用户名和密码,然后,如果它们有效,请询问2FA代码?
答案 0 :(得分:1)
我在angularJs中做了同样的事情。 逻辑: 当用户启用2FA时,在表单提交时只使用用户名和密码,而不是返回错误的凭据响应(401)或成功响应,我返回状态代码(403),指示服务器理解请求但拒绝履行它
当angular接收到403状态时,它会隐藏用户名和密码字段并显示OTP字段。此时,用户名和密码仍然作为角度对象出现,但只是隐藏。
当用户输入OTP并点击提交时,我再次拨打电话,这次通过用户名,密码和OTP。