Опытные люди посоветовали мне этого не делать! И все же, я здесь.

Сегодня я продолжил разработку бэкэнда. В любом веб-сервисе новым пользователям необходимо зарегистрироваться. Для этого я настроил «маршрут регистрации», который проверяет вводимые пользователем данные (адрес электронной почты, пароль и т. д.). Это звучит как обыденная вещь, но это может оказаться непростым делом.

Например, после успешной регистрации пользователь получает электронное письмо (по протоколу передачи почты) с подписанным токеном безопасности (в виде ссылки). После этого пользователю необходимо подтвердить свою учетную запись/профиль, нажав на эту ссылку, которая попадает на «маршрут проверки». Мне пришлось внедрить эту систему.

После успешной проверки пользователь сможет получить доступ к «защищенным маршрутам». Однако это возможно только после того, как пользователь войдет в систему. Поэтому мне пришлось реализовать логику входа с другими проверками (и «маршрутом входа»). После того, как пользователь входит в систему, ситуация становится еще более рискованной.

Если бы я хотел предложить приятный пользовательский опыт, нет смысла просить пользователя повторно входить в систему при каждом последующем посещении/запросе к сервису. Итак, я реализовал систему управления сеансами, которая безопасно проверяет личность пользователя, не требуя повторного входа в систему на одном и том же устройстве.

Система управления сеансами очень важна, поскольку любые ошибки здесь являются прямой угрозой безопасности (легко висящие плоды для атак). Это также одна из причин, по которой я предпочитаю не раскрывать какие-либо технические подробности моего решения этой проблемы в публичном сообщении.

И последнее, но не менее важное: «маршрут выхода». Когда пользователь решает выйти из системы, все токены и записи управления сеансом пользователя очищаются.

В общем, примерно через 1,5 дня работы (скоростная работа) у меня теперь есть надежная инфраструктура пользовательского бэкэнда. На этом этапе разумно начать работу над фронтендом. Именно этим я и займусь дальше; все еще бегает на скорости. Веселые времена.