Я создаю точки входа моего API, чтобы иметь возможность обновить пароль учетной записи.
Рабочий процесс следующий:
Пользовательзапросите обновление пароля с помощью этого письма.Сгенерирован токен и ему отправлено электронное письмо.
POST "/user/reset_password_requests"
{
"email": "foo@bar.com"
}
Когда он щелкнул ссылку в письме.Новый пароль запрашивается.При проверке была названа новая точка входа:
POST "/user/reset_password"
{
"token": "***",
"email": "foo@bar.com",
"password": "***",
"confirm_password": "***",
}
Бэкэнд проверяет действительность токена / электронной почты и совпадают ли пароль и пароль подтверждения.Если все в порядке, он сохраняет его.
Другой случай - при первом подключении.Пользователь обязан сменить свой пароль.
POST "/user/{id}/reset_password"
{
"password": "***",
"confirm_password": "***",
}
Серверная часть проверяет, совпадают ли пароль и пароль подтверждения.Если все в порядке, он сохраняет его.
У меня вопрос к платформе API, как создать DTO для объекта User
для двойного использования ?: Первый пароль для сброса входа в систему и Забыли пароль для сброса.
Для запроса POST "/user/reset_password_requests"
Была использована рекомендация CQRS docs без входного объекта: https://api -platform.com / docs / core / messenger / # dispatching-a-resource-through-the-message-bus