【问题标题】:Update specific firebase auth session custom claims更新特定的 Firebase 身份验证会话自定义声明
【发布时间】:2021-02-25 22:27:53
【问题描述】:

我在我的应用程序中使用 Firebase 身份验证。

身份验证方法:custom authgoogle sign in。用户可以使用两者中的任何一个登录。

用户可以在多个设备上运行多个身份验证会话。

现在当用户使用自定义身份验证登录时,我会在发送自定义身份验证令牌时设置一些自定义声明[会话 ID]。

问题

如果用户使用 google signin 登录,我如何确保自定义声明仅适用于特定会话 [使用 admin sdk 更新自定义声明]?

use case :每个会话都有一个唯一的 ID,以便它可以订阅它,一旦从任何其他设备上删除会话 ID,用户就会自动注销。

提前 ????????????

【问题讨论】:

    标签: firebase firebase-authentication firebase-admin


    【解决方案1】:

    这不是 Firebase 身份验证支持的用例。自定义声明附加到用户帐户,并会在该用户登录时出现。它们与用户会话无关,也不是临时的。如果您需要某种每次会话的权限,自定义声明在这里不会为您提供帮助。

    【讨论】:

    • 我有一个有效的实现和自定义声明就像魅力一样。这个使用firebase登录的谷歌不起作用所以我决定使用谷歌oauth进行自己的实现。反正谢谢
    【解决方案2】:

    似乎确实可以使用Custom Tokens 获得类似于每会话自定义声明的内容,并且自定义声明将是“临时的”(不会保留在 Firebase 用户对象上)。

    1. 使用典型的 Firebase 流程(Google 登录、电子邮件/密码等)在前端对用户进行身份验证
    2. 将令牌发送到您的后端并进行验证
    3. 使用所需的自定义声明创建自定义令牌using the Firebase Admin SDK
    4. 将自定义令牌发送到前端
    5. 使用signInWithCustomToken()重新验证用户

    我发现这在临时提升或修改用户权限时特别有用(例如,管理员代表另一个用户执行受限操作)。

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 2020-06-28
      • 2020-04-01
      • 2022-12-10
      • 2021-08-22
      • 2017-02-15
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多