es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Firebase caduca el idToken, volviéndose inválido después de 1 semana.

Estoy usando Firebase auth con Python.

Cuando el usuario inicia sesión obtengo el idToken y el refreshToken. Después de 1 hora, el idToken expirará. En este momento podemos verificar si el token ha expirado utilizando auth.verify_id_token(idToken) y obteniendo la excepción ExpiredIdTokenError.

Después de 1 semana (aproximadamente), si queremos verificar el token, obtendremos el error InvalidIdTokenError: Certificate for key id f55e294eedc167cd97bb5a819bbf790636f1237e not found..

Esto ocurre porque el kid (key_id) del idToken es diferente al del certificado https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com. Pero no creo que el Certificado de Google cambie cada semana.

Dependencias:
firebase-admin==5.0.3
oauth2client==4.1.3
python3

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como se indica, cuando un usuario inicia sesión con Firebase auth usando python, se proporcionan dos tokens: idToken y refreshToken. El idToken expira después de una hora y se puede verificar usando auth.verify_id_token(idToken). Sin embargo, después de aproximadamente una semana, al intentar verificar el token se obtiene un InvalidIdTokenError con el mensaje Certificate for key id f55e294eedc167cd97bb5a819bbf790636f1237e not found.

    Este error ocurre porque el key_id del idToken es diferente al que se encuentra en el certificado ubicado en `https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com`. Sin embargo, es poco probable que el certificado de Google se esté cambiando semanalmente.

    Las dependencias incluyen firebase-admin==5.0.3, oauth2client==4.1.3 y python3. En el código de firebase_admin, los certs se obtienen de https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com` y se verifica elkey_idcon los certificados obtenidos antes de continuar. Si elkey_idno se encuentra en los certificados, se genera unValueError`.

Comments are closed.