我正在努力使存在和令牌到期在我的应用程序中更具弹性。
我的状态表在登录时使用登录时间戳创建记录,然后当用户关闭会话时,服务器通过onDisconnect()函数记录到注销时间戳。
但是,当身份验证令牌过期时,它不会自动断开会话连接,因此我的状态指示器仍然显示用户在线。此外,如果用户然后在同一浏览器上重新连接,则看起来好像用户已登录两次,因为它仍未记录第一个会话中的onDisconnect。
如果身份验证令牌过期,会自动断开会话连接,还是我打算查看断开连接并自行断开会话?
答案 0 :(得分:2)
身份验证和连接之间存在差异。您可以在/.info/authenticated上收听身份验证状态(Firebase docs)。
问题应该是当onDisconnect操作需要auth权限时 - 因为安全规则。
答案 1 :(得分:0)
所有firebase auth令牌都有一个到期时间,这将在authlistener中返回给您。在此到期时间过后,您可以断开连接。我不确定你使用的是什么语言/ API用于firebase,但是android / ios / web之间的API大致相同。