Я использую сервис аутентификации Auth0, чтобы разрешить пользователям входить в мое приложение.Приложение представляет собой платформу вопросов и ответов, очень похожую на stackoverflow.Я храню профиль пользователя на моем сервере с такой информацией, как: «обо мне», голосами, предпочтениями и т. Д.
Когда новый пользователь входит в систему, мне нужно сделать 1 из 2 вещей:
- Для существующего пользователя - получить профиль пользователя с моего сервера API
- Для нового пользователя - создать новый профиль в базе данных
После входа пользователя в систему, Auth0(служба аутентификации) отправит мне некоторые сведения (уникальный идентификатор, имя и адрес электронной почты) о пользователе, но не будет указывать, является ли это новый пользователь (регистрация) или существующий пользователь (регистрация).
Это не сложная проблема, но было бы хорошо понять лучшие практики.Я могу придумать 2 менее чем идеальных способа справиться с этим:
** Решение 1 - запрос GET **
- Отправить запрос get на сервер api, передав уникальный идентификатор
- Если запись найдена, верните ее
- В противном случае создайте новый профиль в БД и верните новый профиль
Это кажется неверным, поскольку запрос GET не должен записываться всервер.
** Решение 2 - Один GET и условный POST-запрос **
- Отправьте запрос get на сервер API, передав уникальный идентификатор
- сервер проверяет базу данных и возвращает профиль или сообщение об ошибке
- Если сервер API возвращает сообщение об ошибке, отправьте запрос на создание нового профиля
- В противном случае перенаправьте на домашнюю страницу
Это кажется неэффективным, потому что нам нужно 2 запроса для достижения простого результата.
Кто-нибудь может пролить свет на лучшую практику?