2015-10-30 11 views
5

Ich habe einen 3-legged Auth Fluss auf einer App von ihr Web arbeiten. Es geht wie folgt:Drei Beine oauth Fluss auf mobilen app

  • Verwenden klickt Connect mit Google
  • Sie auf der OAuth Dialog akzeptieren, dass Google
  • bietet die Seite meiner Backend umleiten wird/oauth/google Endpunkt mit einem Code-Parameter, die ich senden an Google, um ein refresh_token zu bekommen, damit ich auf Daten (wie Kalenderinfo) in ihrem Namen zugreifen kann
  • Ich umadressieren zurück zur Web-APP, die mein eigenes JWT Token in der URL übergibt.
  • Jedes Mal, wenn der Web-App eine Anfrage wie api.mybackend.com/me macht nutzen sie die JWT Token I
  • bereitgestellt

Ich versuche, etwas ähnliches in einer mobilen App zu erreichen. Was ist der akzeptable Weg, dies zu tun? Ist es etwa die gleiche Logik?

Wenn es hilft, ist mein Backend Ruby on Rails und ich bin die mobile App in Swift zu schreiben.

Danke!

Antwort

3

Wenn Sie NSURLSession verwenden HTTP-Anforderungen zu machen, dann see this for information about handling redirects.

Google hat auch einige vorgefertigte Google Log-in-Pakete für iOS und Android, die Sie in Ihrer App, ähnlich dem zählen können Ihr Web-Client. Ich habe sie nie benutzt, obwohl, so dass ich nicht, wie genau würden sie mit Ihnen App integrieren.

Alternativ können Sie in Ihrem Backend einen Authentifizierungsendpunkt einrichten, der das Ganze abwickelt, wobei die App nur einmal eine Anfrage an Ihren Server und Ihren Server an die Kommunikation mit Google sendet. So zum Beispiel könnten Sie die Benutzer einreichen eine Anfrage an/oauth/mobile. Der Server sendet dann eine Authentifizierungsanforderung an Google und erhält einen Zugriffstoken und eine Aktualisierungs-Token. Dann können Sie das Token Ihrer eigenen App vom Server zurückgeben. Google has some documentation on Google Sign-In for server-side apps that may be relevant.

Verwandte Themen