Я создаю приложение nodejs с graphql, mongodb.
Теперь я решаю, какую систему аутентификации использовать.Мой процесс аутентификации:
- пользователь выполняет некоторые действия, все его действия записываются в БД
- , затем, в конце процесса пользователя, я показываю пользователю форму аутентификации
- пользователь может отказаться или аутентифицировать
- , если пользователь аутентифицируется, я объединяю все действия, выполненные этим пользователем, с реальной учетной записью пользователя.
Я придумал следующее решение:
Когда пользователь впервые заходит на сайт (у него нет accessToken), я создаю пользователя с типом «virtual» вБД, и отправьте на фронт токен этого «виртуального» пользователя.Затем, когда пользователь аутентифицируется, я получаю его реальный идентификатор и обновляю все документы БД: меняю виртуальный идентификатор пользователя на реальный идентификатор пользователя.
Но потом я подумал об опыте пользователя, об аутентификации в социальных сетях.Тогда я встретил решение: Auth0.Как говорят авторы, это решение решает все проблемы с аутентификацией и может дать хороший опыт для пользователей и разработчиков.Но я ничего не нашел о «виртуальном пользователе» или о чем-то подобном.
Подводя итог, У меня есть два вопроса :
Является ли мой процесс аутентификации хорошей практикой?Или я могу сделать это лучше?
Могу ли я сделать это с Auth0?Может ли это решение помочь мне улучшить пользовательский опыт?