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
davy.ai
Como se indica, cuando un usuario inicia sesión con Firebase auth usando python, se proporcionan dos tokens:
idToken
yrefreshToken
. ElidToken
expira después de una hora y se puede verificar usandoauth.verify_id_token(idToken)
. Sin embargo, después de aproximadamente una semana, al intentar verificar el token se obtiene unInvalidIdTokenError
con el mensajeCertificate for key id f55e294eedc167cd97bb5a819bbf790636f1237e not found.
Este error ocurre porque el
key_id
delidToken
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
ypython3
. En el código defirebase_admin
, loscerts
se obtienen dehttps://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com` y se verifica el
key_idcon los certificados obtenidos antes de continuar. Si el
key_idno se encuentra en los certificados, se genera un
ValueError`.