Как привязать данные пользователя к его будущей учетной записи во время регистрации в Stitch

Я хочу использовать Stitch для регистрации пользователей. У каждого пользователя должен быть уникальный адрес электронной почты и уникальное имя пользователя.

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

Я уже реализовал вход с помощью электронной почты и пароля, как описано здесь: https://docs.mongodb.com/stitch/authentication/userpass/

Проблема в следующем: как безопасно сохранить имя пользователя при регистрации? Я мог бы сохранить желаемое имя пользователя в коллекции и объединить его с его пользовательскими данными после первоначального входа в систему. Для этого мне нужно было бы предоставить пользователю права записи в любую коллекцию, содержащую ожидающие имена. Это небезопасно, поскольку теперь он может изменить имя постфактум или даже изменить имена других людей, пока они ожидают рассмотрения.

Пользователь должен выбрать свое имя во время регистрации. В это время пользователь все еще вошел в систему с анонимными учетными данными. Следовательно, я не могу ограничить пользователей изменением только их собственных данных, поскольку на данный момент они еще анонимны. Я не вижу возможности связать данные пользователя с его будущей учетной записью во время регистрации. Есть идеи изменить это?

Это могло бы показаться странным, если бы stitch не обладал функциями, позволяющими легко регистрировать пользователей с уникальным именем / дескриптором в дополнение к адресу электронной почты.

1 ответ

Я не использовал ваше точное программное обеспечение, но в целом я бы подошел к проблеме следующим образом:

  1. Когда кто-то начинает использовать приложение анонимно, создайте объект пользователя. На этом этапе у пользователя нет зарезервированного (т. Е. Уникального в глобальном масштабе) имени пользователя, адреса электронной почты и т. Д. Но у пользователя все еще есть внутренний идентификатор.
  2. Свяжите видимое для пользователя состояние с пользовательским объектом. Это можно сделать с помощью сеансов на стороне сервера или подписанных файлов cookie. (В отличие от файлов cookie без подписи, файлы cookie с криптографической подписью позволяют серверу хранить то, что в противном случае пришлось бы хранить в сеансе на стороне сервера, в файле cookie, и доверяют тому, что клиент не подделал информацию, например, изменив идентификатор пользователя).
  3. Когда пользователь регистрируется, установите имя пользователя, адрес электронной почты и т. Д. Для существующего объекта пользователя. Идентификатор пользователя остается прежним и позволяет пользователю продолжать получать доступ к своим анонимно созданным данным.
  4. Разработайте процесс удаления анонимных пользователей, которые не регистрируются через некоторое время.
Другие вопросы по тегам