Ich mache ein Open-Source-Knotenmodul, das Zugriff auf die privaten Google Drive-Dateien jedes Benutzers erfordert. Ich habe versucht, mich mit all diesen verschiedenen Arten der Authentifizierung zu beschäftigen und bin zu einer Straßensperre gekommen. Von dem, was ich gesammelt habe, gibt es zwei Haupttypen von AuthentifizierungsZugriff auf private Google Drive-Daten ohne OAuth2-Umleitung/Kopieren und Einfügen
I, der Bibliothek Autor, bieten in meiner Bibliothek die öffentlichen und privaten Schlüssel notwendig, jeden Benutzer mit OAuth2 zu authentifizieren. Das bedeutet, dass ich ihnen eine URL geben muss, um meiner App die Erlaubnis zu geben, auf ihre Daten zuzugreifen und sie einen Zugangscode kopieren und in ihr Terminal einfügen zu lassen. Ich war in der Lage, this Tutorial durchlaufen und es funktioniert, aber diese Methode scheint gefährlich, wegen der Schlüssel, die ich mit meiner Bibliothek zu verpacken, und unnötig schwierig.
Lassen Sie den Benutzer zur Google API-Konsole gehen, einen eigenen API-Schlüssel abrufen und diesen über eine Konfigurationsdatei an meine Bibliothek senden. Keine URL-Umleitung, kein Kopieren und Einfügen, nur einige private Zugangsdaten, auf die nur sie Zugriff haben.
2 klingt viel besser zu mir: Diese Bibliothek absolut nichts mit mir zu tun hat, wenn es in die Hände des Benutzers ist, so fühlt es sich falsch sie mit mir authentifizieren zu müssen. Aber von dem, was ich finde, ist der einzige Weg, dies mit Google API zu tun, ein Google-Dienst-Konto zu erstellen, laden Sie die JSON, die Sie geben, einen ähnlichen Ablauf wie der Top-Kommentar auf this Blog-Post, und geben Sie dann manuell Dienstkonto E-Mail-Zugriff auf meine persönlichen Google Drive-Dateien. Das scheint Hacky zu sein und viel Arbeit, um Zugang zu meinen eigenen privaten Daten zu bekommen. Gibt es einen besseren Weg? Es erscheint mir merkwürdig, dass dieser ziemlich standardmäßige Fluss in anderen APIs nur in der Google API über Dienstkonten verfügbar ist, aber vielleicht gibt es einen Weg und ich sehe ihn einfach nicht. Ich bin ziemlich neu in der Authentifizierung, so dass jede Hilfe überhaupt geschätzt wird. Vielen Dank!
Wie würde ich jeden Benutzer mit OAuth2 arbeiten lassen? Ich dachte, OAuth2 wäre, wo ich ihnen eine URL gebe, und diese URL sagt "Gib Weston die Erlaubnis, x, y und z zu machen". Aber wenn es nicht meine Anmeldeinformationen in der URL sind, was ist der Sinn? Gibt es eine Möglichkeit, sich mit OAuth2 zu authentifizieren, ohne URLs kopieren und einfügen zu müssen? – Weston
Wenn sie Ihr Projekt herunterladen, müssen sie eine Konfigurationsdatei oder einen Ort erhalten, an dem sie ihre eigenen Anmeldeinformationen von der Google Developer Console hinzufügen können. – DaImTo
Es wäre also der gleiche Fluss (geben Sie ihnen eine URL, sie kopieren und einfügen zurück in die Konsole), aber der OAuth-Bildschirm würde einfach sagen: "Gib [mir] Erlaubnis, x, y und z zu tun"? Es scheint sehr seltsam zu sein, dies zu tun, ich dachte mir, dass es einen Weg geben würde, all das programmatisch zu tun, wie im Service Account Flow. – Weston