gpt4 book ai didi

android - Firebase session 失效

转载 作者:太空狗 更新时间:2023-10-29 13:57:28 26 4
gpt4 key购买 nike

我在我的应用程序和服务器中使用自定义 token 进行身份验证。旧的 Firebase 有一个选项可以为其所有 token 配置 session 过期时间,因此当 session 过期时,客户端必须从服务器请求一个新 token ,从而在每个给定时间创建一个 token 再生周期。

我希望新的 Firebase 身份验证系统具有相同的功能。

documentation声明 token 到期参数仅适用于 token 本身,并且用户保持登录状态直到他注销或 session 无效。

  1. 如何使 session 无效以触发 onAuthStateChanged 事件,以便我可以向我的服务器请求新 token ?
  2. 此外,onAuthStateChanged 事件究竟何时触发?我从未执行过此回调。

注意

getToken Android SDK 中的方法有一个强制刷新 token 的选项,它会生成一个新 token 并自动让用户登录。虽然这是一个有趣的选项,但应用程序本身究竟如何在不涉及服务器的情况下生成新 token ,这超出了我的理解:服务器 是拥有生成此 token 所需的所有参数的人,包括我从 JSON 获得的私钥自定义 token 所需的文件。

编辑

尝试在服务器端验证应用生成的 token 会导致无效签名错误。

最佳答案

how exactly can the app itself generate a new token without the serverbeing involved is beyond me: the server is the one who has all theneeded parameters to generate this token

没错, token 总是在服务器端生成。但是 Firebase Auth 透明地处理 token 更新/重新生成,因此您应该在那里做任何额外的工作。

How can I invalidate the session in order to trigger theonAuthStateChanged event so that I can ask my server for a new token?

您是自己类型转换代币吗?

如果使用 token 上的 exp 声明来定义过期时间,这将不会触发 onAuthStateChanged,因为用户实际上并未更改状态,您需要手动使 session 无效并处理 token 刷新。

来自 docs :这仅控制自定义 token 本身过期的时间。但是一旦您使用 signInWithCustomToken() 登录用户,他们将保持登录到设备,直到他们的 session 无效或用户注销。

“无效签名”错误很可能是由 missing claim 引起的在 JWT 中。

如果您不类型转换自己的 JWT token

那么你不应该做任何关于 token 创建和刷新的工作。 Firebase 将在后台处理任何事情,您只需要使用 Firebase SDK 即可 validate on your server if the token is valid .

Furthermore, when exactly does the onAuthStateChanged event fire? Ihave never had this callback execute.

这只是一个异步回调,以确保您不会在它仍在构建时调用 Firebase Auth。这将在用户的登录状态更改时调用(例如,您调用 loginWithProvider 或注销)。此更改通常由用户操作触发,但会异步处理以确保 Firebase 已完全设置为可以处理更改。

关于android - Firebase session 失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38316077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com