使用Firebase

时间:2016-09-22 17:46:12

标签: javascript web-applications firebase firebase-authentication

我希望简化Firebase应用中的身份验证工作流程,让用户无需密码即可进行连接:

  • 与第三方OAuth提供商:Facebook,Google等

  • 使用电子邮件

如果是后者,用户只需填写他们的地址,就会收到一个URL,并立即登录,而无需输入/记住密码。

每当他们退出,或者他们的会话超时时,他们都会再次输入他们的电子邮件,并收到一个新链接以开始新会话。

如何使用Firebase执行此操作?

我觉得客户端无法做到这一点,那么实现该工作流程的最佳服务器端例程是什么?

2 个答案:

答案 0 :(得分:2)

对于电子邮件部分,您可以: -

  • 使用来自前端的自定义密码,例如: - 时间戳或一些随机字+ timeStamp。并将timeStamp存储在用户的数据库中,以便将来参考会话到期。

  • 要发送会话开始链接,您可以使用验证邮件发送内部链接,并根据需要调整邮件内容。

  • 了解会话何时到期: -

    • 只需检索 timeStamp 就可以说是timeKeyRetrieved
    • 检查自 timeStamp
    • 以来经过的时间

PS: - 用于检查用户在线期间用户会话是否已过期。你将不得不使用计时器。每当您的用户上线时,只需检索 AppDelegate 方法中的 timeStamp viewWillAppear:

答案 1 :(得分:2)

最后,在花了一些时间来解决这个问题之后,我很快意识到电子邮件验证过程无法用于解决此问题:发送此电子邮件的功能只能由已登录的用户调用< / em>(这很有道理)。因此,它不能用于登录。

我最终将此工作流程与Firebase自定义身份验证结合使用:

  1. CLIENT用户要求登录,他被问到了他的电子邮件地址,并告诉他将收到一个链接,以便在提交表单时完成登录。
  2. SERVER收到电子邮件地址。查找或创建属于该用户creates a custom token with this uid的用户ID,并通过电子邮件发送经过身份验证的链接(例如:http://myapp.com/?token=XYZ
  3. CLIENT用户通过点击该链接返回应用,该应用可以使用token firebase.auth().signInWithCustomToken(token)参数swift
  4. 看,妈,没有密码!