rendom
rendom

Reputation: 3715

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.

Upvotes: 4

Views: 3269

Answers (2)

Pinqode
Pinqode

Reputation: 101

In my case I was accidentally making an update to the current user in Firestore Auth twice. You might want to check for that.

Upvotes: 0

Jeremy
Jeremy

Reputation: 3738

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..

Upvotes: 11

Related Questions