I have login page with working Google Recaptcha
The problem is, even if I'm not pressing I'm not a robot, I can login. How to make check that the checkboxed is checked?
My java code
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ResponseEntity<Map<String, Object>> login(@RequestParam String email,
HttpServletRequest request){
String ip = request.getRemoteAddr();
String captchaVerifyMessage = request.getParameter("g-recaptcha-response");
captchaService.verifyRecaptcha(ip, captchaVerifyMessage);
if (StringUtils.isNotEmpty(captchaVerifyMessage)) {
Map<String, Object> response = new HashMap<>();
response.put("message", captchaVerifyMessage);
return ResponseEntity.badRequest()
.body(response);
}
String token;
User user = userRepository.findOneByEmail(email);
Map<String, Object> tokenMap = new HashMap<>();
if (user != null) {
token = Jwts.builder().setSubject(email).claim("roles", user.getRoles()).setIssuedAt(new Date())
.signWith(SignatureAlgorithm.HS256, "secretkey").compact();
tokenMap.put("token", token);
tokenMap.put("user", user);
return new ResponseEntity<>(tokenMap, HttpStatus.OK);
} else {
tokenMap.put("token", null);
return new ResponseEntity<>(tokenMap, HttpStatus.UNAUTHORIZED);
}
}
My aim is to make some alert message, smth like "You need to prove that you're not a robot"