Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

firebase: admin.auth().updateUser() causes auth/user-token-expired

  1. I successfully auth with phone-number. (I can check firebase.auth.currentUser that I'm logged in.)
  2. Then I'm calling my firebase admin route which have admin.auth().updateUser(uid, somevalues) to set user displayName and email.
  3. After this step finished and my user data changed displayName and email.(It is checked in firebase console) In my auth I run firebase.auth().currentUser.reload() to get updated user data and suddenly there is error auth/user-token-expired I have checked only after I use admin.auth().updateUser(....) my token is lost. If I do not run this command then I can do firebase.auth().currentUser.reload() without problem.

UPDATE: Only if I set email when calling admin.auth().updateUser(....) my token inside app becomes invalid. If I change only displayName token remains valid.

like image 577
rendom Avatar asked Jan 26 '23 19:01

rendom


1 Answers

I'm not sure what the exact question is here, but reload() will use a refresh token, however, refresh tokens expire when "A major account change is detected for the user. This includes events like password or email address updates."

See: https://firebase.google.com/docs/auth/admin/manage-sessions

So when your refresh token expires (due to the 'major account change'), you need to re-authorize..

like image 123
Jeremy Avatar answered Feb 13 '23 07:02

Jeremy