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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 06 мая 2020

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

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