具有Express Backend的Firebase Auth和实时数据库

loiuytre35

我目前正在开发一个项目,该项目可以在使用Firebase Auth和Realtime Database的现有Web应用程序上扩展,这两个客户端都直接使用。我想将网站扩展为具有服务器端渲染功能,因此我计划使用Express将我的网站从托管在GitHub Pages上更改为Heroku。

我当前遇到的问题是在页面之间导航时如何获取经过身份验证的用户,因为我想根据经过身份验证的用户预渲染页面。auth API具有此firebase.auth().currentUser.getIdToken()功能,但这需要在客户端上运行JavaScript,然后再向服务器发送请求。有没有办法将此令牌存储在发出请求时自动发送到服务器的cookie或会话中?

我想出的一种解决方案是从客户端删除所有Firebase库,并通过服务器执行所有这些身份验证和数据库操作,但是我担心这会恶化usr体验,并且两次操作之间会花费更多时间,因为没有值更改侦听器的数据库本地副本。

vious回

您可以使用Firebase管理员api。它使您可以管理服务器端会话cookie。我通过会话cookie来了解如何解决问题。您需要实现会话登录,然后验证会话cookie。最后,根据Cookie中的数据生成内容。

取自docs的示例

// Whenever a user is accessing restricted content that requires authentication.
app.post('/profile', (req, res) => {
  const sessionCookie = req.cookies.session || '';
  // Verify the session cookie. In this case an additional check is added to detect
  // if the user's Firebase session was revoked, user deleted/disabled, etc.
  admin.auth().verifySessionCookie(
    sessionCookie, true /** checkRevoked */)
    .then((decodedClaims) => {
      serveContentForUser('/profile', req, res, decodedClaims);
    })
    .catch(error => {
      // Session cookie is unavailable or invalid. Force user to login.
      res.redirect('/login');
    });
});

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebase实时数据库addValueEventListener

来自分类Dev

Firebase实时数据库未在Android调试APK版本上返回所有值

来自分类Dev

如何在firebase auth和firebase-实时数据库中获得相同的ID?

来自分类Dev

如何使用随机生成的ID将现有数据更新到Firebase实时数据库中的数据

来自分类Dev

如何有效地从Firebase实时数据库获取7天30天摘要?

来自分类Dev

如何使用Firebase实时数据库中的键值或字段键删除所有字段和值?

来自分类Dev

Flutter:Firebase实时数据库orderByChild对查询结果没有影响

来自分类Dev

查询子项具有属性的Firebase实时数据库

来自分类Dev

如何在Flutter中将Firebase实时数据库读取为“字符串”(没有Widget,streambuilder)?

来自分类Dev

Flutter:使用带有http请求的Firebase实时数据库实现分页

来自分类Dev

在SwiftUI中读取带有子节点的Firebase实时数据库父节点时出现问题

来自分类Dev

Firebase的UI Auth是否与实时数据库连接?

来自分类Dev

Firebase实时数据库-规则

来自分类Dev

Firebase实时数据库列出Java中具有自动增量的数据

来自分类Dev

如何更新Firebase实时数据库中的现有值?

来自分类Dev

是否可以将firebase auth链接到实时数据库

来自分类Dev

Firebase实时数据库addValueEventListener

来自分类Dev

Firebase实时数据库未在Android调试APK版本上返回所有值

来自分类Dev

Android:Firebase实时数据库

来自分类Dev

Firebase 实时数据库的问题

来自分类Dev

如何从实时数据库firebase的单个列表视图中同时获取所有子项的详细信息

来自分类Dev

Firebase 实时数据库读取所有现有数据

来自分类Dev

当设备上线时,Firebase 实时数据库会同步,但应用程序没有打开吗?

来自分类Dev

Firebase 实时数据库,无法检查现有数据的数据库,如果不存在则推送

来自分类Dev

Firebase 实时数据库帖子

来自分类Dev

RN Firebase 实时数据库身份验证令牌有效负载

来自分类Dev

Firebase 实时数据库规则。获取 url 中没有 @uid 的规则

来自分类Dev

更新 Firebase 实时数据库中的孩子没有任何作用

来自分类Dev

带有 Firebase 实时数据库和 VueFire 的 Vue.js 应用突然停止工作

Related 相关文章

  1. 1

    Firebase实时数据库addValueEventListener

  2. 2

    Firebase实时数据库未在Android调试APK版本上返回所有值

  3. 3

    如何在firebase auth和firebase-实时数据库中获得相同的ID?

  4. 4

    如何使用随机生成的ID将现有数据更新到Firebase实时数据库中的数据

  5. 5

    如何有效地从Firebase实时数据库获取7天30天摘要?

  6. 6

    如何使用Firebase实时数据库中的键值或字段键删除所有字段和值?

  7. 7

    Flutter:Firebase实时数据库orderByChild对查询结果没有影响

  8. 8

    查询子项具有属性的Firebase实时数据库

  9. 9

    如何在Flutter中将Firebase实时数据库读取为“字符串”(没有Widget,streambuilder)?

  10. 10

    Flutter:使用带有http请求的Firebase实时数据库实现分页

  11. 11

    在SwiftUI中读取带有子节点的Firebase实时数据库父节点时出现问题

  12. 12

    Firebase的UI Auth是否与实时数据库连接?

  13. 13

    Firebase实时数据库-规则

  14. 14

    Firebase实时数据库列出Java中具有自动增量的数据

  15. 15

    如何更新Firebase实时数据库中的现有值?

  16. 16

    是否可以将firebase auth链接到实时数据库

  17. 17

    Firebase实时数据库addValueEventListener

  18. 18

    Firebase实时数据库未在Android调试APK版本上返回所有值

  19. 19

    Android:Firebase实时数据库

  20. 20

    Firebase 实时数据库的问题

  21. 21

    如何从实时数据库firebase的单个列表视图中同时获取所有子项的详细信息

  22. 22

    Firebase 实时数据库读取所有现有数据

  23. 23

    当设备上线时,Firebase 实时数据库会同步,但应用程序没有打开吗?

  24. 24

    Firebase 实时数据库,无法检查现有数据的数据库,如果不存在则推送

  25. 25

    Firebase 实时数据库帖子

  26. 26

    RN Firebase 实时数据库身份验证令牌有效负载

  27. 27

    Firebase 实时数据库规则。获取 url 中没有 @uid 的规则

  28. 28

    更新 Firebase 实时数据库中的孩子没有任何作用

  29. 29

    带有 Firebase 实时数据库和 VueFire 的 Vue.js 应用突然停止工作

热门标签

归档