Рабочий процесс сброса пароля рабочего процесса. DTO, CQRS или сущность на платформе API - PullRequest
0 голосов
/ 02 июля 2019

Я создаю точки входа моего API, чтобы иметь возможность обновить пароль учетной записи.

Рабочий процесс следующий:

  1. Пользовательзапросите обновление пароля с помощью этого письма.Сгенерирован токен и ему отправлено электронное письмо.

    POST "/user/reset_password_requests"  
    {
         "email": "foo@bar.com"
    }
    
  2. Когда он щелкнул ссылку в письме.Новый пароль запрашивается.При проверке была названа новая точка входа:

    POST "/user/reset_password"  
    {  
        "token": "***",
        "email": "foo@bar.com",
        "password": "***",
        "confirm_password": "***",
    }
    
  3. Бэкэнд проверяет действительность токена / электронной почты и совпадают ли пароль и пароль подтверждения.Если все в порядке, он сохраняет его.

    Другой случай - при первом подключении.Пользователь обязан сменить свой пароль.

    POST "/user/{id}/reset_password"  
    {  
        "password": "***",
        "confirm_password": "***",
    }
    
  4. Серверная часть проверяет, совпадают ли пароль и пароль подтверждения.Если все в порядке, он сохраняет его.

У меня вопрос к платформе API, как создать DTO для объекта User для двойного использования ?: Первый пароль для сброса входа в систему и Забыли пароль для сброса.

Для запроса POST "/user/reset_password_requests" Была использована рекомендация CQRS docs без входного объекта: https://api -platform.com / docs / core / messenger / # dispatching-a-resource-through-the-message-bus

...