Spring boot + реализация сброса пароля React JSJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring boot + реализация сброса пароля React JS

Сообщение Anonymous »

Я пытаюсь реализовать функцию сброса пароля/забытия пароля в своем приложении 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 пароль), который ищет пользователя по его адресу электронной почты и устанавливает пароль пользователя на предоставленный пароль из метод.

Код: Выделить всё

    @PostMapping("/resetPassword")
public ResponseEntity resetPassword(@RequestParam("token") String token, @Valid @RequestBody ForgotPasswordEmailRequest request) {
ResetPasswordToken resetPasswordToken = userService.findByResetPasswordToken(token);

if(resetPasswordToken == null) throw new BadRequestException("Invalid token");

Calendar calendar = Calendar.getInstance();

if((resetPasswordToken.getExpiredAt().getTime() - calendar.getTime().getTime()) 

Подробнее здесь: [url]https://stackoverflow.com/questions/70732743/spring-boot-react-js-reset-password-implementation[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»