- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在我的应用程序和服务器中使用自定义 token 进行身份验证。旧的 Firebase 有一个选项可以为其所有 token 配置 session 过期时间,因此当 session 过期时,客户端必须从服务器请求一个新 token ,从而在每个给定时间创建一个 token 再生周期。
我希望新的 Firebase 身份验证系统具有相同的功能。
documentation声明 token 到期参数仅适用于 token 本身,并且用户保持登录状态直到他注销或 session 无效。
onAuthStateChanged
事件,以便我可以向我的服务器请求新 token ? 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/
在Java编程中,使用private关键字修饰了某个成员,只有这个成员所在的类和这个类的方法可以使用,其他的类都无法访问到这个private成员。 上面描述了private修饰符的基本职能,今天来
我是 JWT 的新手,想知道当用户退出应用程序时是否可以在服务器端使 JWT 失效/作废(我也想知道它是否有意义 这样做!)。思路是: 用户点击其应用中的注销链接 应用调用 POST https://
是否有可能使特定操作的 PageCache 无效或删除。 考虑一下: class SiteController extends Controller { public function beh
我使用的是 XCode 9,OSX 而不是 iOS,Objective-C。 我有一个 XPC 服务可以与其他应用程序通信。 XPC 服务对我来说是全新的。我已经阅读了我找到的文档和文章 - 我仍然需
我有一个带有 NSTimer 的 iPhone 应用程序,名为 pressTimer,每当有人触摸此按钮时,该应用程序就会关闭。问题是他们经常触摸按钮,我希望计时器在他们抬起手指时停止。因此,我在 .
session 失效意味着 session 销毁。所以如果 session 被销毁,则表明服务器无法识别之前访问过的客户端。因此现在它为该客户端创建一个新的 session ID。 这是正确的吗?如果
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在尝试缓存 WebClient 返回的 Mono 时遇到问题。代码是这样的: public Mono authenticate() { return cachedTokenMono = ca
我知道通过在 DD-web.xml 文件中设置超时期限来使 session 失效,但我想知道如何以编程方式使 session 失效? 最佳答案 不确定你是否用java编程,但是部署描述符web.xml
我在 2 个不同的服务器上有 2 个应用程序 - Tomcat(基本上是一个 .WAR 文件)和一个在 jBoss 中的 EAR。 EAR 是一个可重复使用的应用程序,我将在其中对用户进行身份验证并将
self.timerProgress=[NSTimer scheduledTimerWithTimeInterval:50.0 target:self selector:@selector(stopP
在我的应用程序中,我应该使用多个计时器,但我不想为每个函数添加单独的计时器,我如何创建一个函数来简化创建多个计时器的过程,我尝试了下面的这段代码,它可以工作,但我不能使计时器无效。 import UI
我在 Swift 中做了一个练习项目来学习 NSTimer 是如何工作的。一键启动定时器,一键取消定时器。当我点击每个按钮一次时它工作正常。但是,当我多次点击开始计时器按钮时,我无法再使其无效。 这是
我在清理事件时遇到一个问题。当我从应用程序注销时,我可以执行清理事件以及 session.invalidate()。但是,当我关闭浏览器选项卡或关闭浏览器时,我无法进行干净的事件。我已经为此阅读了很多
我在 7.1.1 的 Google Pixel 设备上进行测试,发现当所有指纹从设备上移除时,我的私钥并未失效。我已经按照演示应用程序使用单个对称 SecretKey 进行了测试并且按预期工作,但是使
我正在 Tomcat 中运行一个 J2EE Web 应用程序,最近我的任务是向该应用程序添加指标。我正在使用 SessionListener 来检测 session 何时被销毁,然后将指标上传到数据库
我通过右键单击项目 -> 应用程序 -> 程序集信息 -> 标题修改了我的 C# 应用程序名称。 如果应用程序已经安装,则它不会更新名称,因为它正在从未刷新的 MUICache 中提取应用程序名称。
我正在使用 AssetsLibrary 框架将 Assets 保存到特定相册 (ALAssetsGroup)。 由于我经常使用 ALAssetsGroup(用于我想保存 Assets 的专辑),我认为
我的应用程序中有 4 个 NSTimers 对象,它们每隔几秒就会向一个 rest URL 发出请求。 点击一个特定的按钮我想停止计时器,这样它就停止轮询,点击另一个按钮我想恢复轮询。 我已经为所有计
我正在开发一个使用 JWT token 身份验证的 API。我在其背后创建了一些逻辑来使用验证码等更改用户密码。 一切正常,密码已更改。但这里有一个问题:即使用户密码已更改并且我在验证时获得了新的 J
我是一名优秀的程序员,十分优秀!