firebase:admin.auth()。updateUser()导致auth / user-token过期

时间:2019-02-04 18:15:59

标签: firebase firebase-authentication react-native-firebase

  1. 我成功验证了电话号码。 (我可以检查$(function() { $('#trigger, .lightbox').click(function() { $('.lightbox').toggleClass('close'); }); });是否已登录。)
  2. 然后,我正在呼叫具有#menu { text-align: center; } #menu ul { list-style-type: none } /* Button */ button#trigger { margin: 20px; } button#trigger { background: transparent; border: 2px solid #ff0000; color: #000; font-family: 'Source Sans Pro', sans-serif; font-weight: 300; font-size: 18px; border-radius: 20px; padding: 10px 20px; text-decoration: none; text-transform: uppercase; } button#trigger:hover { cursor: pointer; opacity: 0.85; } #menu .lightbox { background: #000; color: #fff; height: 100%; opacity: 0.85; overflow: hidden; padding: 35% 0 0; position: absolute; top: 0; width: 100%; z-index: 3; } #menu .lightbox li.current_page_item a { border: 2px solid #ff0000; border-radius: 20px; color: #fff; display: inline-block; font-family: 'Source Sans Pro', sans-serif; font-weight: 300; padding: 10px 20px; } #menu .lightbox li.current_page_item a:hover { color: #fff; text-decoration: none; } #menu .lightbox a { color: #fff; display: inline-block; font-family: 'Source Sans Pro', sans-serif; font-size: 18px; font-weight: 300; margin: 10px; text-decoration: none; text-transform: uppercase; } #menu .lightbox a:hover { color: #ddd; cursor: pointer; text-decoration: underline; } #menu .lightbox.close { height: 0; width:0; /*ADD THIS ONE*/ top: 100%; } #menu .ion-android-menu { font-size: 20px; } #menu .ion-android-close { font-size: 40px; position: absolute; right: 45px; top: 18px; } #menu .ion-android-close:hover { color: #ddd; cursor: pointer; }来设置用户displayName和电子邮件的firebase管理路由。
  3. 此步骤完成后,我的用户数据更改了displayName和email。(已在firebase控制台中检查到) 在我的身份验证中,我运行<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="menu"> <button id="trigger"><span class="ion-android-menu"><!-- --></span> </button> <div class="lightbox close"> <span class="ion-android-close"><!-- --></span> <ul> <li class="current_page_item"><a href="">Link 1</a></li> <li><a href="">Link 2</a></li> <li><a href="">Link 3</a></li> </ul> </div>以获取更新的用户数据,并且突然出现错误 auth / user-token-expired 仅在使用admin.auth()。updateUser(....)之后,我才检查我的令牌是否丢失。如果我不运行此命令,则可以毫无问题地执行firebase.auth()。currentUser.reload()。

更新:仅当我在调用admin.auth()。updateUser(....)时设置电子邮件时,我的应用内令牌才会失效。如果更改,则displayName令牌仍然有效。

1 个答案:

答案 0 :(得分:1)

我不确定确切的问题是什么,但是reload()将使用刷新令牌,但是,当检测到“用户的主要帐户更改时,刷新令牌会过期。这包括事件例如密码或电子邮件地址更新。”

请参阅:https://firebase.google.com/docs/auth/admin/manage-sessions

因此,当您的刷新令牌到期时(由于“主要帐户更改”),您需要重新授权。