通过“Magic-Link”进行Firebase身份验证

时间:2017-06-08 17:10:37

标签: javascript reactjs firebase

我想向使用react和firebase编码的社区平台的用户发送通知邮件。我想知道是否有办法通过他或她的个人通知邮件中包含的魔术链接来验证用户。

例如:您的帖子中有5条新评论点击此处阅读

点击“此处”可将用户重定向到该页面,并自动对其进行身份验证,而无需输入其个人密码或用户名。

有什么想法吗?

最佳, 米歇尔

2 个答案:

答案 0 :(得分:1)

由于取消了隐私保护框架Schrems II,您可能无法再在 GCP 中存储客户详细信息。

解决方案可以是化名

我正在运行一个开源项目,可以帮助您解决这个问题。

查看以下文章了解更多信息:

https://databunker.org/use-case/schrems-ii-compliance/

答案 1 :(得分:0)

我认为您的问题可以分为2个不同的问题。

1。如何将通知邮件发送到我的社区平台?

我从未在Firebase中使用过通知邮件,我通常直接使用Google的SMTP服务器,并向服务器发送请求以代表我发送电子邮件。因此,就您而言,我将在您的技术堆栈中搜索该库(对我来说,这是Go的gomail),然后您可以使用Google的SMTP服务器(host:smtp.gmail.com,端口:587)。

2。我该如何创建一个链接,使他们在用户单击链接时自动进行身份验证?

我觉得这是一个比较困难的问题。我认为您需要考虑一些事项:

  • 您的链接必须短命。为什么?防止未经授权的暴力登录尝试(这也取决于链接的结构)。但是,最佳实践表明,链接应该短暂存在(少于24小时)。
  • 鉴于链接是短暂的,这取决于用户是否经常检查电子邮件以获取您的通知!他们很有可能会在24小时内错过该电子邮件。

我非常反对通过电子邮件发送对时间敏感的通知。但是,如果您仍要执行此操作,则创建链接非常容易,这是我最简单的方法:

  1. 为链接生成随机uuid。
  2. 将其与将使用该链接登录的用户相关联。您应该将此关联保存在持久数据存储中。
  3. 为魔术链接创建一个端点,例如,/magic/:link_id使用link_id,然后检查应登录的用户。
  4. Voila!您为自己建立了魔术链接!

最后,您可以像问题的第一部分一样通过电子邮件发送链接!