Wie kann Google-API-Client mit einer schlanken 3 Rest-API autorisiert werden?

9

Ich versuche einen webbasierten E-Mail-Client zu erstellen, der alle E-Mail-Daten von der Google Mail-API erhält. Ich verwende Slim3 zum Erstellen einer erholsamen API-Schnittstelle. Um auf Google APIs zuzugreifen, verwende ich Google-API-PHP-Client (Google hat einen Rest-API-Zugang und ich mag es wirklich, aber ich habe immer noch nicht herausgefunden, wie die Autorisierung funktionieren würde, ohne die PHP-Client-Bibliothek zu verwenden ).

Mein Hauptproblem ist, wie ich den Authentifizierungsteil strukturiere, da Google Oauth2 für die Anmeldung verwendet, die einen Code gibt. Ich kann eine einfache tokenbasierte Authentifizierung in Slim verwenden, aber wie erreiche ich Folgendes:

  1. Authentifizierung / Autorisierung mit Google.
  2. Identifizieren neuer und wiederkehrender Benutzer.
  3. Pflege & amp; Behalten Sie sowohl Zugriffs- als auch Aktualisierungstoken von Google und lokalen APIs
  4. Da die API sowohl auf mobilen Clients als auch auf einem Webbrowser verwendet wird, kann ich die Standardsitzungen von PHP nicht verwenden - ich verlasse mich auf datenbankbasierte benutzerdefinierte Token.

Wie strukturiere ich die APIs?

Eine Möglichkeit bestand darin, das Google-Token als einziges Token in der App zu verwenden. Es ändert sich jedoch stündlich. Wie identifiziere ich den Nutzer anhand des Tokens - Google API für jeden eingehenden Anruf aufzurufen, scheint keine elegante Lösung zu sein.

Alle Leads / Links wären wirklich hilfreich.

Vielen Dank im Voraus

    
Himanshu Vaishnav 15.05.2017, 07:24
quelle

1 Antwort

0

Beachten Sie, dass es zwei Teile gibt:

  1. Autorisierung
  2. Authentifizierung

Ich habe vor kurzem diese sehr leichte Klasse für Autorisierung mit Google erstellt und auf die REST-API zugegriffen. Es ist selbsterklärend mit den Kommentaren.

%Vor%

Sobald die Funktion getDataFromLoginRedirect Benutzerdaten zurückgibt, ist Ihr Benutzer Autorisiert . Dies bedeutet, dass Sie jetzt Ihr eigenes internes Authentifizierungs-Token ausstellen können.

Für Authentifizierung pflegen Sie also Ihre eigene Datentabelle von Benutzern mit entweder sub oder email als primärer Bezeichner und geben Token für sie aus, mit entsprechenden Ablaufmechanismen. Die Google-Tokens selbst werden nicht unbedingt gespeichert, da sie nur für nachfolgende Google-API-Aufrufe erforderlich sind. die von Ihrem Anwendungsfall abhängen. Für Ihre eigene Anwendung reicht jedoch Ihr eigener Token-Mechanismus zur Authentifizierung.

Um zu Ihren Fragen zurückzukehren:

Authentifizierung / Autorisierung mit Google.

Wie oben beschrieben.

Identifizieren neuer und wiederkehrender Benutzer.

Kann durch die Existenz des Benutzers in Ihrer Datentabelle bestimmt werden.

Pflege & amp; Erhalten von Zugriffs- und Aktualisierungstoken über Google und lokale APIs

Stellen Sie sich die Frage, ob Sie das wirklich brauchen. Wenn dies der Fall ist, können Sie entweder bei jeder x-Anforderung aktualisieren oder nach Ablauf der Ablaufzeit in weniger als x Minuten aktualisieren (d. H. In diesem Fall ist dies das Zeitlimit Ihrer Anwendung). Wenn Sie wirklich benötigen, dass Ihre Token gültig bleiben, sollten Sie einen Daemon-Mechanismus einrichten, der regelmäßig die Token Ihrer Benutzer aktualisiert.

    
TicTac 26.07.2017, 10:55
quelle