0

我想使用 Stitch 来注册用户。每个用户必须有一个唯一的电子邮件和唯一的用户名

这对于聊天或论坛等应用程序很重要,在这些应用程序中,用户不应该在交流时被迫透露他们的电子邮件。

我已经使用电子邮件和密码实现了登录,如下所述:https ://docs.mongodb.com/stitch/authentication/userpass/#authenticate-a-user

问题是:如何在注册时安全地保存用户名?我可以将用户想要的名称存储在集合中,并在初始登录后将其合并到他的自定义用户数据中。为了做到这一点,我需要授予用户写入权限,以访问持有待处理名称的集合。这是不安全的,因为他现在可以在事后更改名称,甚至在其他人待定时更改他们的名称。

用户需要在注册时选择他的名字。此时用户仍通过匿名凭据登录。因此,我不能限制用户只更改他们自己的数据,因为此时他们仍然是匿名的。我认为在注册时无法将用户数据链接到他未来的帐户。有什么想法可以改变吗?

这似乎很奇怪,如果stitch 缺少除了电子邮件地址之外还没有使用唯一名称/句柄轻松注册用户的功能。

4

1 回答 1

0

我没有使用过您的确切软件,但总的来说,我会按如下方式解决问题:

  1. 当有人开始匿名使用应用程序时,创建一个用户对象。此时的用户没有保留的(即全球唯一的)用户名或电子邮件地址等。但用户仍然有一个内部标识符。
  2. 将用户可见状态与用户对象相关联。这可以通过服务器端会话或签名 cookie 来完成。(与未签名的 cookie 不同,加密签名的 cookie 允许服务器将原本必须存储在服务器端会话中的内容存储在 cookie 中,并相信客户端没有通过更改用户 ID 等方式篡改信息)。
  3. 用户注册时,在已有的用户对象上设置用户名、邮箱等。用户 ID 保持不变,并允许用户继续访问其匿名生成的数据。
  4. 有一个用于删除一段时间后未注册的匿名用户的过程。
于 2020-05-06T18:42:39.353 回答