java - 2FA 的 Spring Security 登录 - 首先检查用户名和密码,然后在需要时询问 2FA 代码

标签 java spring spring-mvc spring-boot spring-security

我已经使用 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/

相关文章:

java - 我必须在接口(interface)或类上放置@Secured 注释吗?

spring-mvc - Spring MVC @PreDestroy 方法不起作用

spring - 如何在 Spring 启动期间生成 HttpServletRequest 以进行 bean 初始化?

java - 如何仅打印一次嵌套 for 循环的结果

在客户端重新启动之前,无法使用 docker-compose 访问 Spring Config 服务器

java - 如何将 eclipse web 项目放到真实世界的服务器上?

java - JPA实体继承,无需额外的表

java - Hibernate - 查询为实体中的所有字段返回空值,而同一查询从数据库中完美返回

java - 堆外缓存 DirectMemory 是否已准备好投入生产?活跃吗?

java - 使用 Jersey RxJava 客户端未找到类 rx.Observable 的序列化器