Я пытаюсь реализовать функцию сброса пароля/забытия пароля в своем приложении Spring Boot/React, но у меня возникают некоторые проблемы, пытаясь полностью понять это, я не уверен, правильный ли подход, который я использую, или нет.
У меня уже работают регистрация и вход в систему.
Я создал конечную точку REST: /sendForgotPasswordEmail [POST]
При этом пользователь находит пользователя по адресу электронной почты, который он вводит в форму ответа, и проверяет, существует ли учетная запись с этим адресом электронной почты.
Если учетная запись пользователя найдена, ему отправляется сообщение электронное письмо с уникальным токеном и ссылкой на форму сброса пароля (застряла здесь)
Я также создал объект Token, который генерирует случайный UUID, поэтому, когда пользователь нажимает кнопку «Забыл пароль» и заполняет подробности, в электронном письме генерируется эта ссылка: http://localhost:3000/reset-password/e9 ... 6f1c616461
@PostMapping("/sendForgotPasswordEmail")
public ResponseEntity sendForgotPasswordEmail(@Valid @RequestBody ForgotPasswordEmailRequest request) {
User user = userService.findUserByEmailAddress(request.getForgotPasswordEmail());
ResetPasswordToken resetPasswordToken = userService.createResetPasswordToken(user);
if(userService.existsByEmailAddress(request.getForgotPasswordEmail())) {
emailService.sendResetPasswordEmail(request.getForgotPasswordEmail(), resetPasswordToken.getToken());
return ResponseEntity.ok(new ApiResponse("Please check your email for a password reset link" , true));
} else {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}
}
Я создал конечную точку REST: /resetPassword [POST]
Читает токен, сгенерированный с помощью @RequestParam, чтобы проверить, истек ли срок его действия и т. д.
У меня есть метод службы под названием resetPassword(String email, String пароль), который ищет пользователя по его адресу электронной почты и устанавливает пароль пользователя на предоставленный пароль из метод.
Я пытаюсь реализовать функцию сброса пароля/забытия пароля в своем приложении Spring Boot/React, но у меня возникают некоторые проблемы, пытаясь полностью понять это, я не уверен, правильный ли подход, который я использую, или нет. У меня уже работают регистрация и вход в систему. [list] [*]Я создал конечную точку REST: /sendForgotPasswordEmail [POST]
При этом пользователь находит пользователя по адресу электронной почты, который он вводит в форму ответа, и проверяет, существует ли учетная запись с этим адресом электронной почты. [*]Если учетная запись пользователя найдена, ему отправляется сообщение электронное письмо с уникальным токеном и ссылкой на форму сброса пароля (застряла здесь) [*]Я также создал объект Token, который генерирует случайный UUID, поэтому, когда пользователь нажимает кнопку «Забыл пароль» и заполняет подробности, в электронном письме генерируется эта ссылка: http://localhost:3000/reset-password/e90c4fa5-2e74-4b44-b3c4-5d6f1c616461 [/list]
[code] @PostMapping("/sendForgotPasswordEmail") public ResponseEntity sendForgotPasswordEmail(@Valid @RequestBody ForgotPasswordEmailRequest request) {
User user = userService.findUserByEmailAddress(request.getForgotPasswordEmail()); ResetPasswordToken resetPasswordToken = userService.createResetPasswordToken(user);
if(userService.existsByEmailAddress(request.getForgotPasswordEmail())) { emailService.sendResetPasswordEmail(request.getForgotPasswordEmail(), resetPasswordToken.getToken()); return ResponseEntity.ok(new ApiResponse("Please check your email for a password reset link" , true)); } else { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); } } [/code]
[list] [*]Я создал конечную точку REST: /resetPassword [POST]
Читает токен, сгенерированный с помощью @RequestParam, чтобы проверить, истек ли срок его действия и т. д. [*]У меня есть метод службы под названием resetPassword(String email, String пароль), который ищет пользователя по его адресу электронной почты и устанавливает пароль пользователя на предоставленный пароль из метод. [/list]