createCustomToken(aUID)是否注销当前使用相同aUID进行身份验证的用户



TLDR;如果每个用户的自定义令牌总是由同一个UID生成,那么多个不同的用户是否可以通过生成的自定义令牌进行身份验证并保留身份验证?也就是说,User1(通过createCustomToken(UID1)(获得UID1生成的自定义令牌,然后用signInWithCustomToken()登录,然后User2获得并用UID1生成的自定义代币登录,然后是User3,等等,尽管其他用户以这种相同的方式进行了身份验证,但所有这些用户都能愉快地保持登录状态,不会受到干扰吗?

长版本:

好的,所以我正在尝试创建一个链接共享系统,其中导航到此链接的用户可以访问我项目的Firebase资源的特定子集。我已经尝试过使用Firebase的signInAnonymously()来做到这一点,但我不喜欢Firebase这样做,原因有很多,我不想进入。

i想要实现这一点的方法是:

  1. 生成唯一链接(实际上是Firestore唯一的文档ID,文档中存储了一些访问数据(

  2. 让未经身份验证的用户导航到某个登录页,调用云函数并传递唯一链接(现在称之为UID(

  3. 云功能在收到此UID后,将createCustomToken(UID),将令牌返回给调用用户

  4. 并且用户将使用CCD_ 7来认证自己并访问所提供的资源

现在,一切都很好,但我的问题是:

如果两个人(或更多的人(导航到同一个链接,并因此传递和创建具有相同UID的令牌,他们所有都可以继续愉快地使用Firebase资源吗?或者是因为他们获得了为他们创建的使用相同UID的令牌,所以产生了某种令牌冲突,因此任何以这种方式进行身份验证的下一个用户都将撤销前一个用户的身份验证令牌。

我还没能尝试一下,似乎每个关于这些定制代币的问题都与它们的生成和到期时间有关,我理解这一点。我希望Auth文档更清楚地了解使用自定义令牌的机制和陷阱。我自己也没能尝试,因为这需要大量的重构,我希望有人能给我一个直接的答案。

是的,无论使用哪种身份验证方法,用户都可以登录多个设备,而不会同时影响其他会话。

我不确定唯一链接是什么,但如果函数只获取一个UID并返回一个自定义令牌,则传递UID本身不是一个好主意,因为UID很短,只是一个随机字符串。最好在有效负载中包含UID的链接中添加一个自定义签名的JWT,以便在创建Firebase自定义令牌之前对其进行验证。

相关内容

最新更新