J'ai une application écrite sur Firebase. Les règles de sécurité et le code côté client ne suffisent pas à faire fonctionner mon application. J'ai besoin de connecter un serveur pour effectuer quelques tâches:
Mise à jour (20160611): si vous avez créé votre projet sur https://firebase.google.com , les étapes d'accès à la base de données depuis un serveur sont différentes. Voir cette réponse: Est-il toujours possible de faire une vérification côté serveur des jetons dans Firebase 3?
Vous pouvez procéder de deux manières: Générez un jeton d'authentification de serveur ou utilisez un secret Firebase.
Générez un jeton de serveur Vous pouvez utiliser les mêmes bibliothèques de générateur de jetons créées pour la connexion personnalisée pour générer des jetons que vous pouvez utiliser à partir de votre serveur. Vous pouvez ensuite fournir un accès spécial à ce serveur à partir de vos règles de sécurité.
Voici les étapes:
Générez un jeton avec un uid présélectionné. Si vous écrivez un serveur node.js, le code pourrait ressembler à ceci:
var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator("<your-firebase-secret>");
var token = tokenGenerator.createToken(
{uid: "my-awesome-server"},
{ expires: <far_into_the_future_seconds> });
Utilisez le jeton pour authentifier votre client. Voici plus de code node.js:
var ref = new Firebase("https://<your-firebase>.firebaseio.com/");
ref.authWithCustomToken(token, function(error, authData) {
...
});
S'il n'y a pas de client pour la langue de votre serveur, par exemple PHP, utilisez le jeton pour vos demandes REST comme paramètre auth
.
Mettez à jour vos règles de sécurité pour accorder des autorisations spéciales à votre serveur, comme identifié par l'uid, comme cette règle simple qui permet un accès en lecture à l'ensemble de Firebase
{
"rules": {
".write": false,
".read": "auth.uid === 'my-awesome-server'"
}
}
Accédez à toutes les données, faites des choses impressionnantes.
Avantages
Secret Firebase
Si vous êtes le genre de développeur qui aime vivre sur Edge, et que vous tapez Sudo
en un clin d'œil, vous pouvez également vous authentifier en utilisant votre secret Firebase directement.
Mais sérieusement, ne fais pas ça. C'est dangereux.
Raisons de ne pas le faire
Sudo
, c'est incroyablement dangereux.