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.
- Biblioteca Java para consumir / manipular Sharepoint 2013 Resto OData Resultado XML
- JSON publica en Rails desde Android
- Agregar encabezados a solicitud envueltos por ClientResource en Restlet
- Administrador de dispositivos Android de Google API de resto?
- ¿Qué hacer cuando Http Post se completó con éxito y mientras espera la respuesta de conectividad a Internet perdido?
¿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.
- Cómo consumir servicios web SOAP / REST en Android (Servicio / Difusión / Intención / etc)
- Pase y reciba el objeto JSON de Jersey Resftul webservice desde android
- Jersey Client en Android - NullPointerException
- ¿Cómo pasar el enum personalizado en @Query a través de Retrofit?
- Configuración del tipo de contenido Json para el cliente Rest
- Publicar mi servicio Web RESTful en Internet
- Android con Gradle (Java terminado con valor de salida no nulo 2)
- Generar dirección desde Lat / Long en Android o REST
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
- Cómo alinear el texto verticalmente en el centro de android
- Android: detención de actividad que no se reanuda