1

我想知道会话到期时是否会触发任何回调(我正在使用 Simplelogin with $authWithPassword())。我已经用谷歌搜索并偶然发现了这个:https ://groups.google.com/forum/#!topic/firebase-talk/btaE-hCVQdk

但我不明白 auth-Method 的回调如何监听“会话过期”,因为它只执行一次(当用户登录时)。或者它的回调实际上有一个事件监听器?`

我尝试通过使用选项参数来测试登录expires: ((new Date()).getTime() + 1000) / 1000(它说,它需要一个以秒为单位的时间戳而不是毫秒),但我没有得到结果。

任何帮助表示赞赏。

4

1 回答 1

0

我对此的解决方案:(
在伪代码步骤中,可以帮助使用完整的 javascript)
1.通过执行以下操作获取timeOffset(服务器/客户端):
1.1。在firebase -object(即在线列表) 1.2中登录ref.set()clientTime(Date.now())和serverTime( )。成功读取两者并在 ms 2中获取 timeOffset。使用您控制的注销功能(即)和以下超时值: 2.2 微秒到超时:通过您获取登录,使用它来计算过期超时值:Firebase.ServerValue.TIMESTAMP

window.setTimeout()unauth()
auth()authData.expires
authData.expires*1000 - Date.now()+that.serverTimeOffset - 2000

使用 *1000 因为authData.expires在几秒钟内。
用户 -2000 因为你必须unauth()比 firebase 更快地断开连接:-)

我对这个解决方案非常满意。它非常适合我的多人浏览器游戏。

于 2016-02-21T00:06:00.857 回答