首页 > 解决方案 > 从请求正文的“用户名或电子邮件”字段中识别并验证用户名和电子邮件

问题描述

我有一个控制器,它应该验证一对username/passwordemail/password并在成功时返回一些令牌以响应。

Controller-Method

    @PostMapping(value = {"/login"})
    ResponseEntity<?> login(
       HttpServletRequest httpServletRequest,
       HttpServletResponse httpServletResponse,
       @Valid @RequestBody LoginParam loginParam) {
    
     // Check if username/email exist and password is same, if yes, send token back in response

     return ResponseEntity.ok().build();
    }

LoginParam.Java

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class LoginParam {

      @NotBlank(message = "username/email can't be empty")
      @Email(message = "Invalid email") // how to check if it's an email or username ??
      private String usernameOrEmail;

      @NotBlank(message = "password can't be empty")
      private String password;
    }

如何确定提供的输入是usernameoremail并相应地执行验证?javax.validation是否能够根据输入的语法自动执行此操作?

这里的限制是我们在登录提示中只有 2 个字段,username or email并且password

标签: javaspring-boot

解决方案


推荐阅读