Uso del correo y la contraseña para autenticarse mediante la API REST

Me preguntaba si es posible autenticar realmente a la API de RESB de Firebase withouth usando la autentificación de encargo ?

He trabajado con Firebase ahora por algún tiempo y actualmente estoy pensando en migrar un backend de la mía a Firebase. La aplicación que utiliza el backend actualmente utiliza una API REST y no necesita datos en tiempo real. Por lo tanto, me gustaría utilizar sólo la API REST y no el marco completo de Android en los clientes.

¿Es posible obtener un token de autenticación utilizando la autenticación de correo y contraseña de Firebase a través de peticiones HTTP?

En los documentos antiguos sólo he encontrado una solución con inicio de sesión personalizado y en los documentos nuevos parece que necesita una cuenta de servicio de Google.

Cualquier ayuda o consejo apreciado.

Autenticación REST de Firebase

Me di cuenta de cómo realizar la autenticación de correo electrónico y contraseña para Firebase mediante el examen de las solicitudes enviadas por la API de Javascript.

Estas API no están documentadas y no admiten


Firebase 3

La autenticación de Firebase 3 es una versión actualizada y renombrada de Google Identity Toolkit. La documentación antigua no es totalmente precisa, pero puede ser útil y se puede encontrar aquí: https://developers.google.com/identity/toolkit/web/reference/

Firebase 3 requiere que todas las solicitudes tengan Content-Type: application/json en el encabezado

Clave API

Firebase 3 requiere que se adjunte una clave de API a todas las solicitudes de autenticación. Puede encontrar la clave de la API para su base de datos visitando la vista general del proyecto Firebase y haciendo clic en "Agregar Firebase a su aplicación web". Debería ver una ventana con código como el siguiente:

 <script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"> </script> <script> // Initialize Firebase var config = { apiKey: "<my-firebase-api-key>", authDomain: "my-firebase.firebaseapp.com", databaseURL: "https://my-firebase.firebaseio.com", storageBucket: "my-firebase.appspot.com", }; firebase.initializeApp(config); </script> 

Copie el valor apiKey y guárdelo para más tarde.

Registro

Método: POST

URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=<my-firebase-api-key>

Carga útil:

 { email: "<email>", password: "<password>", returnSecureToken: true } 

Respuesta:

 { "kind": "identitytoolkit#SignupNewUserResponse", "localId": "<firebase-user-id>", // Use this to uniquely identify users "email": "<email>", "displayName": "", "idToken": "<provider-id-token>", // Use this as the auth token in database requests "registered": true, "refreshToken": "<refresh-token>", "expiresIn": "3600" } 

Iniciar sesión

Método: POST

URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=<my-firebase-api-key>

Carga útil:

 { email: "<email>", password: "<password>", returnSecureToken: true } 

Respuesta:

 { "kind": "identitytoolkit#VerifyPasswordResponse", "localId": "<firebase-user-id>", // Use this to uniquely identify users "email": "<email>", "displayName": "", "idToken": "<provider-id-token>", // Use this as the auth token in database requests "registered": true, "refreshToken": "<refresh-token>", "expiresIn": "3600" } 

Obtener información de la cuenta

Método: POST

URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/getAccountInfo?key=<my-firebase-api-key>

Carga útil:

 { idToken: "<provider-id-token>" } 

Respuesta:

 { "kind": "identitytoolkit#GetAccountInfoResponse", "users": [ { "localId": "<firebase-user-id>", "email": "<email>", "emailVerified": false, "providerUserInfo": [ { "providerId": "<password>", "federatedId": "<email>", "email": "<email>", "rawId": "<email>" }], "passwordHash": "<hash>", "passwordUpdatedAt": 1.465327109E12, "validSince": "1465327108", "createdAt": "1465327108000" }] } 

Firebase 2

Estas solicitudes devuelven datos JSON descritos en los documentos de Firebase. https://www.firebase.com/docs/web/guide/login/password.html#section-logging-in

Iniciar sesión

Puede autenticar enviando una solicitud GET con el siguiente formato:

 https://auth.firebase.com/v2/<db_name>/auth/password?&email=<email>&password=<password> 

Registro

La creación de usuarios también se puede realizar enviando la misma petición GET con _method=POST como parte de la cadena de consulta

 https://auth.firebase.com/v2/<db_name>/users?&email=<email>&password=<password>&_method=POST 

Desde Firebase Guide Autenticación con Firebase en sitios web mediante un sistema de autenticación personalizado (consulte https://firebase.google.com/docs/auth/web/custom-auth )

Puede integrar Firebase Authentication con un sistema de autenticación personalizado modificando su servidor de autenticación para producir tokens firmados personalizados cuando un usuario acceda correctamente. Su aplicación recibe este token y lo utiliza para autenticarse con Firebase.

Aquí está la idea clave:

1) Agregue Firebase a su Proyecto Web y utilice el SDK de JavaScript de Firebase REST para Autenticación, y acceda a la Base de Datos de Almacenamiento / Tiempo Real con Firebase.

  // TODO: Replace with your project's customized code snippet <script src="https://www.gstatic.com/firebasejs/3.0.2/firebase.js"></script> <script> // Initialize Firebase var config = { apiKey: '<your-api-key>', authDomain: '<your-auth-domain>', databaseURL: '<your-database-url>', storageBucket: '<your-storage-bucket>' }; firebase.initializeApp(config); </script> 

2) Los usuarios de la aplicación se conectan a su servidor de autenticación utilizando su nombre de usuario y contraseña. Su servidor comprueba las credenciales y devuelve un token personalizado si son válidos.

3) Después de recibir el token personalizado de su servidor de autenticación, pase a signInWithCustomToken para iniciar sesión en el usuario

 firebase.auth().signInWithCustomToken(token).catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // ... }); 

Si intenta a través de REST API que tiene que hacer toda la operación en su Apllication .

Sólo tienes que tomar los datos json y comprobar su autenticación o no .

Utilice el método retrofit Get y sólo agarrar todos los datos de su aplicación firebase .

Este es mi post Rerofit + Firebase que me enviaron para que el principiante entienda la conexión de firebase y Retrofit.

O

Por favor, vaya a través de estos enlaces va a ayudarle …………………

Autenticación REST

Autenticación del Usuario

Ejemplo

Disfruta codificando

Necesita la devolución de un Token una vez que se autentique con su Email y Contraseña, de acuerdo con la documentación que puede devolver el token de un usuario con getToken(opt_forceRefresh) , está disponible en la siguiente URL.

https://firebase.google.com/docs/reference/js/firebase.User#getToken

Para la API REST API use la biblioteca loopj. Proporciona la autorización básica. Para autenticar api, puede utilizar la identificación y contraseña de correo electrónico.

Creo que usted puede hacer uno de los siguientes:

  • Conecte su aplicación web a Firebase, su API REST gestionará la autenticación mediante la recepción de las credenciales de usuario y, a continuación, la autenticación con Firebase a través de las APIs de la web.

  • Utilice el SDK del servidor Firebase para generar tokens de autenticación personalizados , el token será un JSON Web Token (JWT) .

También hay proyectos en GitHub para generar tokens de Firebase:

  • Pitón
  • PHP
  • Reducción del número de clases de eventos al utilizar EventBus o Otto
  • RoboSpice y ORMLite - Acceso a los datos
  • Android ContentProvider y Google IO Rest Talk
  • ¿Cómo puedo eliminar la clave nameValuePairs del JSONObject?
  • Spring MVC, Thymeleaf y REST
  • Certificado SSL para los servicios web REST (utilizados por Android)?
  • ¿Cómo puedo enviar JSon como BODY en una solicitud POST al servidor desde una aplicación de Android?
  • ¿Cómo implementar una arquitectura REST y ContentProvider sencilla usando Modelos?
  • Cómo crear autenticación REST para aplicaciones móviles de iOS y Android
  • Integración de los servicios REST con una base de datos de inventario y SQL utilizando Android
  • Obtener datos del servidor con jquery ajax en android phonegap
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.