Utiliser le courrier et le mot de passe pour s'authentifier via L'API REST [Firebase]
je me demandais s'il était possible à réellement authentifier à la base de données REST API withouth en utilisant le authentification personnalisée ?
je travaille avec Firebase maintenant depuis un certain temps et je suis en train de penser à migrer un arrière-plan de la mienne vers Firebase. L'application qui utilise le backend utilise actuellement une API REST et n'a pas besoin de données en temps réel. Ainsi J'aimerais utiliser seulement L'API REST et pas le cadre Android complet sur les clients.
est-il possible d'obtenir un jeton auth en utilisant l'authentification mail & password de Firebase via des requêtes HTTP?
dans le Vieux docs j'ai seulement trouvé une solution avec un login personnalisé et dans le nouveaux docs vous semblez avoir besoin d'un compte Google Service.
toute aide ou conseils appréciés.
5 réponses
mise à jour: l'authentification du repos de la base de données Firebase est maintenant documentée!
Firebase RESTE de l'authentification
j'ai trouvé comment effectuer l'authentification par courriel et mot de passe pour Firebase en examinant les requêtes envoyées par L'API Javascript.
Firebase 3
Firebase 3 authentication est une version mise à jour et renommée de Google Identity Toolkit. L'ancienne documentation n'est pas entièrement exacte, mais peut être utile et peut être trouvée ici: https://developers.google.com/identity/toolkit/web/reference /
Firebase 3 exige que toutes les demandes ont Content-Type: application/json
dans l'en-tête
clé API
LaFirebase 3 exige qu'une clé API soit jointe à toutes les demandes d'authentification. Vous pouvez trouver la clé API pour votre base de données en visitant L'aperçu du projet Firebase et en cliquant sur "Ajouter Firebase à votre application web". Vous devriez voir une fenêtre avec le code suivant:
<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>
copiez la valeur apiKey et sauvegardez-la pour plus tard.
enregistrement
méthode: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=<my-firebase-api-key>
charge utile:
{
email: "<email>",
password: "<password>",
returnSecureToken: true
}
réponse:
{
"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"
}
Login
méthode: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=<my-firebase-api-key>
charge utile:
{
email: "<email>",
password: "<password>",
returnSecureToken: true
}
réponse:
{
"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"
}
Obtenir Des Informations De Compte
méthode: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/getAccountInfo?key=<my-firebase-api-key>
charge utile:
{
idToken: "<provider-id-token>"
}
réponse:
{
"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
ces requêtes renvoient les données JSON décrites dans la base de données Firebase docs. https://www.firebase.com/docs/web/guide/login/password.html#section-logging-in
Login
vous pouvez vous authentifier en envoyant une demande GET dans le format suivant:
https://auth.firebase.com/v2/<db_name>/auth/password?&email=<email>&password=<password>
enregistrement
la création D'utilisateur peut également être effectuée en envoyant la même requête GET avec _method=POST
dans le cadre de la chaîne de requête
https://auth.firebase.com/v2/<db_name>/users?&email=<email>&password=<password>&_method=POST
du Guide Firebase authentifier avec Firebase sur les sites Web utilisant un système D'authentification personnalisé (voir https://firebase.google.com/docs/auth/web/custom-auth )
vous pouvez intégrer L'authentification Firebase avec une authentification personnalisée système en modifiant votre serveur d'authentification pour produire personnalisé les jetons signés lorsqu'un utilisateur signe avec succès. Votre application reçoit ce jeton et l'utilise pour s'authentifier avec Firebase.
Voici l'idée clé:
1) Ajoutez Firebase à votre projet Web et utilisez Firebase REST JavaScript SDK pour L'authentification, et accédez au stockage / base de données en temps réel avec 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) les utilisateurs de l'application se connectent à votre serveur d'authentification en utilisant leur nom d'utilisateur et leur mot de passe. Votre serveur vérifie les informations d'identification et renvoie un token personnalisé s'il est valide.
3) Après avoir reçu le token personnalisé de votre serveur d'authentification, passez-le à signInWithCustomToken pour signer dans l'utilisateur
firebase.auth().signInWithCustomToken(token).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
si vous essayez REST API que vous devez faire toute opération dans votre application .
il suffit de saisir le données json et coché votre authentifier ou non .
utiliser retrofit obtenir la méthode et juste saisir toutes les données de votre firebase app .
c'est mon post Rerofit + Firebase que j'ai été affecté au débutant pour comprendre la connexion de firebase et de Retrofit.
ou
s'il vous Plaît aller à travers ce liens il va vous aider .....................
profitez du codage.......
vous avez besoin du retour d'un Token une fois que vous vous authentifiez avec votre e-mail & Mot de passe, selon la documentation, vous pouvez retourner le token d'un utilisateur avec
getToken(opt_forceRefresh)
, est disponible à L'URL suivante.
https://firebase.google.com/docs/reference/js/firebase.User#getToken
je crois que vous pouvez effectuer l'une des opérations suivantes:
-
Connectez votre application web à Firebase, votre API REST gérera l'authentification en recevant les justificatifs d'identité de l'utilisateur, puis en s'authentifiant avec la Firebase via le authentification par mot de passe APIs web
-
utilisez le SDK du serveur Firebase pour générer les tokens d'authentification personnalisés , le token être un JSON Web Token (JWT) .
il y a aussi des projets sur GitHub pour générer des jetons Firebase: