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.

44
demandé sur Endzeit 2016-05-19 15:06:54

5 réponses

mise à jour: l'authentification du repos de la base de données Firebase est maintenant documentée!

voir la documentation


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

La

Firebase 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
54
répondu nloewen 2017-11-02 18:52:52

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;
  // ...
});
3
répondu Chebyr 2016-05-27 06:41:58

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 .....................

RESTE auth

Autorisation De L'Utilisateur

exemple

profitez du codage.......

2
répondu sushildlh 2017-05-23 11:54:58

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

1
répondu Luis Ruiz Figueroa 2016-05-21 18:39:56

je crois que vous pouvez effectuer l'une des opérations suivantes:

il y a aussi des projets sur GitHub pour générer des jetons Firebase:

0
répondu Mina Samy 2016-05-28 11:07:17