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:
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
Beachten Sie, dass es zwei Teile gibt:
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.
Tags und Links php authentication slim google-api-php-client