Quería crear una aplicación web que pudiera ver la información del canal de YouTube del usuario. Firebase para la autenticación con Google y luego accessToken el token de acceso y el token de refreshToken con la ayuda del código a continuación.
const provider = new GoogleAuthProvider(); provider.addScope("https://www.googleapis.com/auth/youtube.readonly"); signInWithPopup(auth, provider) .then(async (result) => { // This gives you a Google Access Token. You can use it to access the Google API. const credential = GoogleAuthProvider.credentialFromResult(result); const accessToken = credential.accessToken; const refreshToken = result._tokenResponse.refreshToken; const user = result.user; localStorage.setItem("accessToken", accessToken); localStorage.setItem("refreshToken", refreshToken); localStorage.setItem("user", user); } Pero después de la expiración de accessToken , deja de ser válido. Por lo tanto, quiero obtener el token de refreshToken accessToken pero no pude encontrar ninguna forma de recuperarlo.
Los SDK de Firebase no administran tokens de proveedores como se menciona en esta respuesta . La forma más fácil sería volver a autenticar al usuario , pero es posible que los usuarios tengan que volver a autorizar su aplicación si es necesario. Volver a autenticarse devolverá el mismo objeto UserCredential como result del fragmento de código en su pregunta.
Otra opción sería usar el propio SDK del proveedor y actualizar el token cuando sea necesario.