2017-10-19 12 views
0

Je développe une application native Android en utilisant Firebase (aucun autre serveur personnalisé, seulement Firebase) Et il devrait utiliser d'autres services. (comme API Facebook, API Twitter, etc ...)Puis-je utiliser la base de données Firebase Realtime/Firestore en tant que serveur OAuth2.0?

Les fournisseurs de services fournissent l'API REST via OAuth 2.0. Je suis très novice de l'OAuth 2.0, je n'ai aucune connaissance, expérience.

Hier, j'ai essayé d'implémenter "Implicit Grant", et ça marche très bien. Je peux obtenir access_token, et je peux utiliser les API REST en l'utilisant.

Mais il existe un paramètre "expires_in": 604800 (7 jours). Cela signifie que mon client doit réautoriser après 7 jours. (Il n'y a pas de refresh_token.)

Donc, je pense à changer l'implémentation de "implicit grant" à "grant d'autorisation". Mais je vous l'ai déjà dit, je suis novice de l'OAuth 2.0. (Je n'ai aucune expérience, c'est ma première fois.)

Si je choisis "Autorisation du code d'autorisation", je devrais stocker le "code" pour remplacer le "access_token". Alors où dois-je le stocker? Je pense que je peux le stocker dans un appareil local, mais il ne considère pas la sécurité. Donc, je veux savoir, puis-je utiliser "Firebase Realtime base de données/Firestore" comme un stockage pour stocker "code".

Je pense que c'est raisonnable. Mais je ne suis pas sûr ...

Répondre

0

Puisque vous avez dit que vous êtes un débutant, il vaut la peine de lire plus sur OAuth 2.0 surtout quand vous voulez construire serveur OAuth, une simple recherche google, https://stormpath.com/blog/what-the-heck-is-oauthhttps://stormpath.com/blog/what-the-heck-is-oauth

base de feu base de données seule suffisante pour construire une sever, vous avez besoin d'extrémités pour gérer la demande entrante pour vous pouvez utiliser Cloud Functions

donc, si vous voulez mettre en œuvre ** ** ou octroyer une autorisation de flux implicite, il doit se passer dans le navigateur,

  1. D'abord, vous pouvez utiliser les fonctions de cloud pour gérer la requête GET entrante du client (dans le navigateur)
  2. vous revenez ensuite une page de connexion où les utilisateurs peuvent se connecter,
  3. poignée Puis le auth soumettre la demande de la page, l'authentifier, si valide générer un code ou access_token (dans le cas de l'écoulement implicite), magasin qui dans la base de données firebase
  4. retour le code généré retour au client à l'aide de redirection uri

Enfin, si l'autorisation accorder le flux, vous avez besoin d'autres fonctions de cloud pour gérer l'échange de code pour accéder au jeton

+0

Merci, mais je ne veux pas créer de serveur OAuth. Je veux juste utiliser déjà un (comme facebook/twitter). De toute façon, vous voulez dire que c'est possible. – yoonhok

+0

Je ne comprends pas ... Dois-je utiliser "Cloud Functions"? Je pense que le mobile natif peut faire la même chose. Je ne sais pas pourquoi devrais-je utiliser "Cloud Functions". – yoonhok

+0

Je suis désolé, j'ai lu votre question comme si vous aviez besoin d'implémenter le serveur Oauth –