Hemos creado un backend de nodejs personalizado, pero la autenticación utiliza Firebase Auth con idtoken, los idtokens caducan después de 1 hora y el usuario se desconecta automáticamente. Cuando se usa firestore, esto se maneja automáticamente, hemos visto soluciones que sugieren un trabajador de servicio pero eso no ha funcionado.
¿Puede alguien sugerir una solución estable para esto que puede ser un middleware en las API de back-end que pueden regenerar los tokens?
Gracias
El usuario no se desconecta y es por eso que Firestore sigue funcionando. Puede usar el método getIdToken() nuevamente para obtener el token de identificación del usuario y luego pasarlo en la solicitud de API.
firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) { // Send token to your backend via HTTPS // ... }).catch(function(error) { // Handle error });El enfoque normal (que también usan los propios servicios de Firebase) es siempre el token actual con cada solicitud al servicio de backend, de modo que el servicio tenga al menos 5 m para completar la solicitud (que es mucho más de lo que la mayoría de los servicios necesitan).
Si necesita un token que se pueda usar por más tiempo, puede considerar forzar una actualización del token antes de llamar al servicio como señaló Dharmaraj en su respuesta.
Alternativamente, puede cambiar al uso de cookies de sesión para el usuario, que pueden tener una caducidad de hasta dos semanas.