邀请未注册用户使用我的应用程序的最安全方式是什么?

What is the most secure way to invite an unregistered user to my app?

我正在开发一个带有 Express 后端的 React 应用程序,带有用于通过 JWT 进行身份验证的 Passport。注册用户需要能够向未注册的其他人发送邀请,以使用该应用程序。不应要求未注册用户注册才能查看我们内容的子集。 这很重要 - 未注册用户需要能够访问属于已注册用户的某些数据,否则未经身份验证将无法查看。我构建了一个邀请模型来跟踪这些邀请、发送邀请的人、发送给谁等。

识别此用户的 best/most 安全方法是什么?

我目前的猜测是创建一个唯一的字符串并将其存储在邀请对象中,然后通过电子邮件将其传递给未注册的用户。因此,他们将在我们的应用程序中添加一个 link,并在末尾附加 ?invite_id=SOME_ID_HERE。当他们到达我们的应用程序时,我们将验证该字符串是否与我们数据库中的邀请相匹配。

这是最好的方法吗?我是否应该做一些更安全的事情,也许是一对 public 和私钥?任何建议将不胜感激,谢谢!

我认为最好将其作为随机 ID 保存在您的数据库中。这样,以后可以删除用户。而且,如果您以后确实将这个新用户与那个随机 ID 相关联,您可以使用您已经存储的现有配置文件,而不是让他们从头开始。

换句话说,为这个用户创建一个新的 ID,但设置它,以便他们只能通过这个 URL 访问东西,直到他们创建一个帐户。