Javascript 使用Firebase实现无密码登录的最佳方法
我想简化Firebase应用程序中的身份验证工作流,让用户无需密码即可连接:Javascript 使用Firebase实现无密码登录的最佳方法,javascript,web-applications,firebase,firebase-authentication,Javascript,Web Applications,Firebase,Firebase Authentication,我想简化Firebase应用程序中的身份验证工作流,让用户无需密码即可连接: 与第三方OAuth提供商:Facebook、Google等 或 用电子邮件 如果是后者,用户只需填写地址,接收URL,然后立即登录,而无需键入/记住密码 每当他们注销或会话超时时,他们都会再次输入电子邮件,并收到新链接以启动新会话 如何使用Firebase做到这一点? 我觉得这在客户端是不可能的,那么实现该工作流的最佳服务器端例程是什么呢?对于电子邮件部分,您可以:- 使用前端自定义密码,例如:-时间戳或一些
- 与第三方OAuth提供商:Facebook、Google等
- 用电子邮件
我觉得这在客户端是不可能的,那么实现该工作流的最佳服务器端例程是什么呢?对于电子邮件部分,您可以:-
- 使用前端自定义密码,例如:-时间戳或一些随机字+时间戳。并将该时间戳存储在用户数据库中,以备将来会话过期时参考
- 要发送启动会话的链接,您可以使用验证电子邮件发送内部链接,并根据需要调整邮件内容
- 要了解会话何时过期,请执行以下操作:-
- 只需检索时间戳就可以说是
timeKeyRetrieved
- 检查自时间戳以来经过了多少时间
- 只需检索时间戳就可以说是
PS:-用于检查用户在线期间的用户会话是否已过期。你必须使用定时器。当用户联机时,只需在AppDelegate方法中检索时间戳,或视图就会出现:对于电子邮件部分,您可以:-
- 使用前端自定义密码,例如:-时间戳或一些随机字+时间戳。并将该时间戳存储在用户数据库中,以备将来会话过期时参考
- 要发送启动会话的链接,您可以使用验证电子邮件发送内部链接,并根据需要调整邮件内容
- 要了解会话何时过期,请执行以下操作:-
- 只需检索时间戳就可以说是
timeKeyRetrieved
- 检查自时间戳以来经过了多少时间
- 只需检索时间戳就可以说是
PS:-用于检查用户在线期间的用户会话是否已过期。你必须使用定时器。当用户联机时,只需在AppDelegate方法中检索时间戳,或视图就会出现:最后,在花一些时间来解决这个问题之后,我很快意识到,电子邮件验证过程无法解决这个问题:只有已经登录的用户才能调用发送此电子邮件的功能(这很有意义)。因此,它不能用于登录
我最终将此工作流与Firebase自定义身份验证一起使用:
客户
用户要求登录,他询问了自己的电子邮件地址,并告诉他在提交表单时将收到一个完成登录的链接李>
服务器
接收电子邮件地址。查找或创建属于该用户的用户id,并通过电子邮件发送经过身份验证的链接(例如:http://myapp.com/?token=XYZ
)CLIENT
用户通过单击该链接返回应用程序,应用程序可以使用token
参数来使用firebase.auth().signInWithCustomToken(token)
看,妈妈,没有通行证最后,在花了一些时间弄明白这一点之后,我很快意识到电子邮件验证过程无法解决这个问题:只有已经登录的用户才能调用发送此电子邮件的功能(这很有意义)。因此,它不能用于登录
我最终将此工作流与Firebase自定义身份验证一起使用:
客户
用户要求登录,他询问了自己的电子邮件地址,并告诉他在提交表单时将收到一个完成登录的链接李>
服务器
接收电子邮件地址。查找或创建属于该用户的用户id,并通过电子邮件发送经过验证的链接(例如:http://myapp.com/?token=XYZ
)CLIENT
用户通过单击该链接返回应用程序,应用程序可以使用token
参数来使用firebase.auth().signInWithCustomToken(token)
看,妈妈,没有通行证您是否考虑过在前端使用自定义密码,例如timStamp(或可能与随机字母混合使用..或其他什么)?对于会话到期,您可以使用该时间戳来知道会话何时开始。好的,但是如何使用电子邮件中的链接记录它们呢?更重要的不是时间或超时,而是使用电子邮件发送的链接登录的过程。不知道怎么做。我想你可以发送一封验证邮件,并根据你的需要更改验证邮件的文本。好主意。我可以发送另一个用于重新登录吗?是的,每当会话过期时,请再次发送验证电子邮件..等等。您是否考虑过从前端使用自定义密码,例如timStamp(或可能与随机字母混合..或什么)?对于会话到期,您可以使用该时间戳来知道会话何时开始。好的,但是如何使用电子邮件中的链接记录它们呢?更重要的不是时间或超时,而是使用电子邮件发送的链接登录的过程。不知道怎么做。我想你可以发送一封验证邮件,并根据你的需要更改验证邮件的文本。好主意。我可以发送另一个重新登录吗?是的,每当会话过期时,请再次发送验证电子邮件..等等瞧。对不起,我忘了提到我正在使用web SDK(javascript)^^对不起,我