Firebase signInWithCustomToken句柄令牌到期

时间:2016-06-06 05:48:55

标签: firebase

我正在使用firebase 9.x和自定义身份验证。根据文档,令牌到期时间不能超过一小时。是否有一个我可以注册的监听器,当令牌到期时将被调用。

该文档还讨论了令牌的自动刷新。我认为这不适用于自定义身份验证。别的我知道。

https://firebase.google.com/docs/auth/server#use_the_firebase_server_sdk

理想情况下,文档(上面)应该包含所需的信息。

提前致谢。

3 个答案:

答案 0 :(得分:3)

生成服务器端(自定义身份验证)的令牌是JWT(JSON Web令牌)。此令牌必须由您的客户端(Android?)提供给Firebase服务器,以向Firebase验证用户身份。在9.x库中,似乎这些令牌现在具有一小时的最大寿命(即在60分钟后不再接受它们)。 (参见Sam Stern在本期中的评论:https://github.com/firebase/quickstart-android/issues/31)。

Sam表示,一旦使用自定义生成的令牌进行身份验证,Android客户端将一直保持授权状态,直到退出。

如果您确实需要知道JWT令牌何时有效,那么在您的服务器上生成它之后应该是60分钟。如果令牌尚未用于使用Firebase进行身份验证,此时您可以重新生成一个新令牌并使用该令牌。

答案 1 :(得分:1)

你试过AuthListener吗?

mAuthListener = new FirebaseAuth.AuthStateListener(){ @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { FirebaseUser user = firebaseAuth.getCurrentUser(); user.getCurrentUser().getToken(true); // ... } };; mAuth.addAuthStateListener(mAuthListener);

答案 2 :(得分:0)

该文档具有误导性。应该说您有1个小时的时间使用自定义令牌登录。我还觉得,如果令牌是临时令牌,则应该一次性使用。否则,这会混淆他们希望您使用令牌的方式。

如果设置正确,SDK将负责使会话令牌保持最新状态。有关更多信息,自定义标记仅用于启动SESSION。因此,您必须花费数小时才能使用自定义令牌登录。登录并正确设置Firebase管理员帐户和应用程序配置后,SDK即可与Firebase后端进行来回通信,以使令牌保持最新状态。使用FirebaseAuth.signout()退出后,如果超过1小时,则需要一个新的自定义令牌重新登录。

因此,在大多数情况下,您实际上不需要监听令牌到期