Firebase Microsoft SignInWithCredential Iniciar sesión con credenciales de Microsoft en Firebase
Estoy configurando la autenticación de Microsoft en Firebase (web js sdk), pero me estoy encontrando con un error en firebase.auth.signInWithCredential
. Puedo obtener correctamente un token de identificación de Microsoft, pero el paso de autenticación de Firebase falla. He probado con Firebase v8 y v9, y varias formas de formar mi objeto de credenciales. De hecho, obtengo el mismo error incluso al pasar un token de acceso. Parece que hay algo mal en la biblioteca de Firebase.
¿Alguien ha experimentado este problema antes y lo ha resuelto?
Código:
const { id_token } = authResponse.params; // He verificado que id_token es correcto
const credential = new firebase.auth.OAuthProvider("microsoft.com").credential({
idToken: id_token,
rawNonce: "12345",
});
await firebase.auth().signInWithCredential(credential);
La credencial parece generarse correctamente:
Object {
"accessToken": undefined,
"idToken": "eyJ0eXAiOiJKV...",
"nonce": "12345",
"pendingToken": null,
"providerId": "microsoft.com",
"secret": undefined,
"signInMethod": "microsoft.com",
}
Pero el paso de signInWithCredential
obtiene el siguiente error:
Uncaught (in promise)
code: "auth/internal-error"
message: "Respuesta/Credencial de IdP no válida: http://localhost?id_token=eyJ0eXAiOiJKV..."
davy.ai
Parece que puede haber un problema con la biblioteca de Firebase en el manejo del objeto de credencial generado por el método
firebase.auth.OAuthProvider
. Ya has verificado que elid_token
es correcto y el objeto de credencial se ve bien.Una posible solución es utilizar la API de Microsoft Graph para autenticar al usuario directamente con Firebase. Puedes autenticar al usuario utilizando la API de Microsoft Graph y obtener un token. Luego, utiliza ese token para iniciar sesión en Firebase utilizando el método
signInWithCustomToken
.Aquí tienes un ejemplo de código:
Este método utiliza el método
signInWithCustomToken
para iniciar sesión en Firebase con el token personalizado obtenido de la API de Microsoft Graph. Esto debería evitar cualquier problema con la biblioteca de Firebase en el manejo del objeto de credencial del métodofirebase.auth.OAuthProvider
.¡Espero que esto te ayude a resolver tu problema! Avísanos si tienes alguna otra pregunta.