如何使用Firebase和自定义服务器实施长期单点登录?

django09

我有一个服务器端渲染的应用程序,它也可以与Firebase通信。当用户登录时,客户端会从firebase获取ID令牌,然后按照文档中的说明与服务器共享该令牌我的服务器将ID令牌存储在cookie中,以便客户端将令牌包含在所有请求中,并且我的服务器可以检查用户是否已登录。

问题是,当Firebase在一个小时后刷新令牌时,我的服务器无法验证令牌ID,并将其重定向到登录页面。然后,客户端加载并从Firebase获取刷新的令牌,并将其存储在服务器Cookie中,然后我的服务器会再次正确验证请求。

我可以使客户端在每个请求上刷新令牌,但是当用户离开我的网站并在一小时后返回时,仍然会出现问题。

我如何设置我的应用程序,以便Firebase令牌过期后我的服务器可以正确验证用户身份?

博耶尔

因此,您需要在令牌过期之前(每个小时)主动刷新令牌。刷新令牌后,您可以将其发送到服务器,进行验证,并将其设置为与ID令牌具有相同生存期的会话cookie。您也可以从客户端立即将其设置为cookie(如果您不使用仅HTTP的cookie)。

您的服务器将在每个请求中收到此cookie,请在返回受限资源之前对其进行验证。

我认为您已经意识到这一点。如果用户在一个多小时内没有访问您的网站,就会出现此问题。在这种情况下,您的服务器将认为该用户已注销。这是您需要做的:

用户尝试访问/ myCart,该cookie在cookie过期时显示其购物车。您的服务器未检测到Cookie并重定向到临时页面:/ redirect?continue = / myCart在该页面上,您设置了onIdTokenChanged或onAuthStateChanged,一旦它触发了最新的ID令牌,便将其保存为会话Cookie并重定向到/我的车。否则,您将认为用户已注销并重定向到登录页面。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将 Firebase 存储与自定义服务器一起使用?

使用mod_auth_cas和自定义登录单点登录

Blazor 服务器:自定义登录页面

在Wordpress和自定义网站之间的单点登录

使用ASP.NET Identity 2.0和MVC 5的自定义单点登录

如何通过keycloak自定义sso(单点登录)?

使用自定义登录方法时出现服务器错误

使用React Native和Firebase自定义令牌在LDAP服务器上进行身份验证

如何使用 Plupload 和 Symfony3 在 UI 中显示自定义服务器错误

域和自定义DNS服务器

服务器/页面上的单点登录

如何在 Linux 的 Azure 应用服务中使用自定义 DNS 服务器?

如何使用自定义验证器服务器验证列表中的每个条目

如何在 Apollo 服务器中共享自定义 typeDefs 和 enum?

如何创建自定义订阅服务器?

如何向服务器发送自定义问候

如何添加服务器证书自定义验证

如何实现自定义Apollo服务器KeyValueCache?

使用自定义 mod_wsgi 和 python 对共享服务器的访问受限

在服务器上使用 AWS Amplify Auth 和自定义 auth-storage

使用XCFE和TightVNC在Ubuntu服务器上自定义分辨率

使用 Blazor 服务器自定义身份模型

使用自定义 mongoDB 服务器而不是 mongolab

如何使用内置PHP Web服务器在自定义根路径中使用空格

Gnuplot:如何使用自定义 xlabels 绘制单点

领域对象服务器:使用自定义身份验证成功登录后访问被拒绝错误

如何使用 nginx 服务器路由自定义 URL 路径?

如何使用自定义 IP 地址启动 Dockernized Django 服务器?

使用无服务器时如何指定授权者自定义错误代码