[Ionic/PHP] Designkeuze App/API m.b.t. Google Auth

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Stuupje
  • Registratie: Februari 2011
  • Laatst online: 28-08 00:46
Ik probeer me verder te verdiepen in de wereld van apps, specifiek in de requests van/naar een API endpoint.

Als aanvulling op een bestaande applicatie wil ik een simpele app ontwikkelen die in verbinding staat met een op PHP gebaseerde API. De API zal worden gebruikt om de app van informatie te voorzien, en uiteraard ook aan te passen.

De huidige applicatie is een simpele web applicatie, en maakt gebruik van Google Auth om gebruikers te verifiëren, waarna ze acties kunnen uitvoeren op de website.

De toekomstige API zal RESTful worden uitgevoerd. Dat betekend stateless, waardoor het authenticeren op een andere manier moet gebeuren. Mijn idee is om Google Auth in de app te integreren, waarna de API kan worden aangeroepen met de Google Auth-token als parameter. Elke request die dan bij de API binnenkomt moet worden gecontroleerd op echtheid (bij Google), waarna te juiste gegevens uit onze database kunnen worden opgehaald.

Maar gaat dit in de praktijk ook werken, bijvoorbeeld kijkend naar de token-refresh? O-)

Of zit ik nu heel moeilijk te denken terwijl de oplossing wellicht gigantisch makkelijk is? 8)7

Beste antwoord (via Stuupje op 06-02-2017 23:51)


  • kutagh
  • Registratie: Augustus 2009
  • Laatst online: 18:51
Waarom niet kijken naar bijvoorbeeld JWT (of alternatieve opties)? Hiermee maak je je API communicatie onafhankelijk van een derde partij (namelijk als Google down is, zou je nog wel eventueel met Facebook kunnen inloggen). Dan heb je dus alleen nog de Google Auth nodig om eenmalig te inloggen op jouw eigen API, waarna deze zo'n token genereert en teruggeeft aan je client. Daarna kan je alles authenticeren aan hand van de token.

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • kutagh
  • Registratie: Augustus 2009
  • Laatst online: 18:51
Waarom niet kijken naar bijvoorbeeld JWT (of alternatieve opties)? Hiermee maak je je API communicatie onafhankelijk van een derde partij (namelijk als Google down is, zou je nog wel eventueel met Facebook kunnen inloggen). Dan heb je dus alleen nog de Google Auth nodig om eenmalig te inloggen op jouw eigen API, waarna deze zo'n token genereert en teruggeeft aan je client. Daarna kan je alles authenticeren aan hand van de token.

Acties:
  • 0 Henk 'm!

  • boyd91
  • Registratie: Maart 2009
  • Laatst online: 10-09 09:41
Je bedoeld dat je via je App wilt inloggen bij Google en de verkregen token meestuurt met je API requests zodat je API ook bij de Google gebruikersdata kan?

Persoonlijk zou ik alles via m'n backend (de API dus) laten lopen. Dus jouw backend bepaald of de gebruiker 'authenticated' is of niet en dat zou ik gewoon met bijv. JWT doen. Je kunt in je backend alsnog authenticatie via Google laten lopen, maar bewaar die Google token dan gewoon op je backend en stuur je eigen token terug naar de app. Je hebt dan een single source of truth.

In theorie moet jouw methode ook gewoon werken hoor, maar het levert onnodige complexiteit op. Waarom zou je je de authenticatie van je gebruiker op twee plaatsen op twee verschillende manieren laten plaatsvinden? In jouw situatie kan je in de situatie komen dat jij in je backend een gebruiker hebt geblokkeerd, Google geeft dan terug 'gelukt!' (en misschien geef je dat in je UI al weer) terwijl je API later zal zeggen dat de user niet authenticated is.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Je moet niet voor elke actie op jouw server een request naar Google (of welke externe andere partij dan ook) willen doen. Ik sluit me aan bij het vorige advies: gewoon een eigen token gebruiken en JWT is daarbij erg simpel in gebruik.