Google OAuth 2.0 aber wie

TheCoder

Mitglied
Hallo zusammen,

ich sitze nun schon seit einigen Tagen an Google OAuth 2.0. Ich bekomme einfach nichts hin. Ich entwickle momentan ein System, für automatisches Video uploaden auf YouTube.
Für die Weboberfläche benutzte ich Apache Wicket, was aber für die Frage unerheblich ist. Wichtig ist nur, das das Programm später auf einem Server laufen soll.
Jetzt zu meinem Problem. Ich habe nur die Login Daten für das Google Konto. Wie bekomme ich mich nun eingeloggt, und kann ein Video Uploaden. Das Uploaden funktioniert soweit auch schon, solange ich die Authentifizierung-Methode von hier nutzte. Wie bekomme ich es aber ohne einen Browser hin?

MFG René
 

Tobse

Top Contributor
Es geht nicht ohne browser, das ist doch der Zweck von OAuth: Der Authorisierungs-Anbieter (in deinem fall Google) übernimmt das prüfen der Zugangsadaten und gibt dir dann ein Access-Token, mit welchem du im Namen des Users agieren kannst. Und um sich bei Google einzuloggen braucht es ein Browserfenster von Google - andernfalls würde der User ja seine Zugangsdaten deiner Anwendung anvertrauen und OAuth ist genau dafür da, das zu unterbinden.
 

TheCoder

Mitglied
Danke für die Antwort.
Wie ist es denn möglich, auf einem Server die Authentifizierung durchzuführen? Gibt es dafür eine andere Methode? Ich fasse mich so kurz, da ich am Handy bin.
 

Tobse

Top Contributor
Nein, es gibt keine andere Methode. Um Zugriff auf Google zu bekommen muss ein Gerät des Users sich mit einem Google-Server verbinden, damit der User sich authentifizieren kann. Und meines wissens nach bietet Google dafür nur 2 Möglichkeiten:

1. Per HTTP auf die OAuth seite
2. Mit dem Google SDK auf Android (aber selbst da bin ich mir nicht sicher, ob das nicht auch ein Aufsatz auf den HTTP Login ist)
 

TheCoder

Mitglied
Um Zugriff auf Google zu bekommen muss ein Gerät des Users sich mit einem Google-Server verbinden, damit der User sich authentifizieren kann.
Wie meinst du das? Er muss sich nur an einem Gerät authentifizieren? Das bedeutet, dass ich einen Client und einen Server haben muss? Oder gibt es einen Ansatz über Apache Wicket die Authentifizierung auf den Client zu bekommen? Ich habe keinen gefunden.
 

Tobse

Top Contributor
Der User hat ein Gerät - seinen Browser, sein Handy, whatever. Mit diesem meldet er sich bei Google an. Damit ist sichergestellt dass nur Google und der User mit den Zugangsdaten in Kontakt kommen. Als "Antwort" auf den Login erhält der User im OAuth Protokoll ein AccessToken, dass er an deinen Server weiterleitet, damit du damit die Google API ansprechen kannst.
Dass der User sich direkt bei Google anmeldet und nicht einen Umweg über deine Anwendung macht ist der Sinn und Zeck von OAuth. Und weil Google eben nur eine Webseite für diesen Schritt anbietet kommst du um die Webseite nicht drumrum.

Jetzt kann man diese Webseite natürlich in eine Anwendung (etwa mit einer WebView unter Android) einbinden.
 

TheCoder

Mitglied
Ach so, also bekomme ich einmalig einen AccessToken vom User und bekomme so einen Zugriff? Also kann ich den AccessToken vom Nutzer abfragen, speichern und so Zugriff bekommen? Ist ja noch einfacher als ein Passwort sicher zu speichern etc.
 

Tobse

Top Contributor
Das mit dem AccessToken ist leider nicht einmalig; das hat ein Ablaufdatum und muss dann erneuert werden. Aber solange der Nutzer noch bei Google eingeloggt ist, muss er nichts mehr machen (passiert alles, ohne das der User das mitbekommt.)

Ja, das ist es - auch das war eine Intention der OAuth-Autoren. Aber auch mit dem AccessToken musst du vorsichtig sein. Solange es gültig ist, kann man damit - im Namen deiner Anwendung! - schabernack treiben. Im besten fall speicherst du es garnicht sondern behälst es nur im RAM. Wenn deine Anwedung beendet wurde und der User sie wieder startet forderst du dann ein neues an (auch das bekommt der User nicht mit, sofern er bei Google eingeloggt bleibt).
 

TheCoder

Mitglied
Somit müsste auch das Handy reichen oder? Das mit der Sicherheit sollte kein Problem sein, da es ein privates Projekt ist und vorläufig nur einmal benutzt wird. Das mit dem neu starten und dann anfordern werde ich integrieren.
 

Tobse

Top Contributor
Ja, richtig. Auf Android muss man ja zwangsläufig ein Google Konto angeben, weshalb das dort immer klappen sollte (vorrausgesetzt du nutzt das SDK, die Google Play Services)
 

TheCoder

Mitglied
vorrausgesetzt du nutzt das SDK, die Google Play Services
Auf einem Linux Server? Ich glaube ich habe dich falsch verstanden. Ich habe gedacht, das man auf irgendeinem Gerät bei Google eingeloggt sein muss.
Um nochmal alles zusammenzufassen:
Auf dem Server muss man sich bei Google anmelden. (Z.B. mit einem Browser)
Ich bekomme einen Access-Token mit dem ich dann Videos uploaden kann.
In regelmäßigen Abständen muss ich mir einen neues holen.
Ist das so in etwa richtig?

Folgende Fragen kommen dadurch:
  • Gibt es alternativen für Server als einen Browser, wie z.B. ein Programm welches das übernimmt?
  • Wie lange ist ein Access-Token gültig?
  • Wie bekomme ich einen neuen Access-Token außer von dem User?
Oder ein anderer Ansatz. Gibt es für Google eine andere Loginmöglichkeit neben OAuth 2.0?
 
Zuletzt bearbeitet:

TheCoder

Mitglied
Ich möchte auf einem Linux Server ein Programm starten, welches Videos auf YouTube hoch lädt. Da es sich bei dem Programm um eine Apache Wicket Applikation handelt, habe ich es mir ursprünglich so vorgestellt, dass der User auf einer Seite die Login Daten angibt und sich das Programm (Applikation) daraufhin anmeldet. Ab dem Zeitpunkt soll das Programm Videos automatisch uploaden können. So war es jedenfalls angedacht. Laut @Tobse ist dies aber so nicht möglich. Ich suche nun nach einer Möglicket dies zu realisieren.
Was mich aber heute Morgen gewundert hat, dass es sogar ein Programm gibt, welches mit den Login Daten hantiert und das noch funktioniert. Link: http://sourceforge.net/projects/sjyt-uploader/

MFG René
 
Zuletzt bearbeitet:

Tobse

Top Contributor
[EDIT]
Was mich aber heute Morgen gewundert hat, dass es sogar ein Programm gibt, welches mit den Login Daten hantiert und das noch funktioniert. Link: http://sourceforge.net/projects/sjyt-uploader/
Das geht schon. Es wiederspricht aber dem Sicherheitskonzept von OAuth und wahrscheinlich nicht von Google offiziell unterstützt.
[/EDIT]

Nein, das SDK funktioniert natürlich nur auf dem Gerät des Benutzers. Machst du eine Webanwendung oder eine App? Im falle einer Webanwendung fällt das SDK flach; im Falle einer App kannst du das SDK benutzen, damit der User die App nicht verlassen muss.

Hier mal eine Grafik zum OAuth-Prozess:
OAuth-Flow.png

Wenn du zum Ablauf noch fragen hast: Googles Dokumentation wird dir weiterhelfen: https://console.developers.google.com/

Wie lange das AccessToken gültig ist, erfährst du, wenn du es von Google abfrägst. Das bewegt sich miesst im bereich von Stunden oder weniger Tage.
Du bekommst ein neues AccessToken gemäß OAuth nur über den User. Es kann sein, dass Google (ausserhalb der OAuth spezifikation!) eine Option anbietet unendlich gültige Tokens zu bekommen oder ein bestehendes zu erneuern; da weiss ich aber bei Google nicht bescheid. Auch hier wird dir die Dokumentation von Google weiterhelfen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
E Key für TOTP Algorythmus(Google Authentificator) Allgemeine Java-Themen 0
N Google Authenticator Algorithmus (SHA1) Allgemeine Java-Themen 1
L Compiler-Fehler Google Guice Module zur Laufzeit zusammenstellen und binden Allgemeine Java-Themen 4
T Google Links in einer Liste Allgemeine Java-Themen 4
L Google Guice Field Injection returns null Allgemeine Java-Themen 2
G Google-Suche ist nicht auslesbar?! Allgemeine Java-Themen 18
I Java google Sandbox benutzen Allgemeine Java-Themen 1
X Lotto - google caliper Benchmark Allgemeine Java-Themen 4
T Google Distance Matrix API Hello World/ Client Secret Allgemeine Java-Themen 3
T Google Maps API nächste Person Allgemeine Java-Themen 5
F Über Java Google Suche nutzen Allgemeine Java-Themen 11
M Google App Engine macht Probleme Allgemeine Java-Themen 4
M Google Guice (Assisted Injects) - Buggy oder mach ich's falsch? Allgemeine Java-Themen 5
F Google Guice + Generics + Vererbung Allgemeine Java-Themen 5
yvesdaeschle Google Spreadsheet Allgemeine Java-Themen 6
M google plus java api - Anfänger sucht Hilfe Allgemeine Java-Themen 7
M GWT Project nur in Google Chrome sichtbar Allgemeine Java-Themen 7
L Java und Javascript um Distanz über Google Maps zu berchnen Allgemeine Java-Themen 10
S Frage: Google Maps "Map" in Java Allgemeine Java-Themen 3
M Google API Allgemeine Java-Themen 6
algorismi Google maps in Java Swing Allgemeine Java-Themen 2
P Google Abfrage auslesen Allgemeine Java-Themen 2
DamienX Google Guice AOP + Logging Allgemeine Java-Themen 3
FoolMoon API für Google Suchergebnisse? Allgemeine Java-Themen 23
Pfirsich Java + Begriff = Pos + Domain (Google API) !!! Allgemeine Java-Themen 14
M Google Maps mit Java Allgemeine Java-Themen 5
B Regex -> Bspw. _NUR_ GOOGLE.de Allgemeine Java-Themen 7
R Google Keyword Position Allgemeine Java-Themen 11
R Wie Google & Co mit Java nutzen? Allgemeine Java-Themen 16
J Bitte um Kurzinfo bez. JMF (ja, war bei Forumssuche/google) Allgemeine Java-Themen 2
Y Google Map + JSP Tag Libary Allgemeine Java-Themen 2
N google maps api mit javaserver faces Allgemeine Java-Themen 5
C Server-Zahl von google.com Allgemeine Java-Themen 11
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
Thallius Zeitzone zu einem LocalDate hinzufügen aber ohne es zu ändern... Allgemeine Java-Themen 2
L Kursverlauf vorhersagen mit Deeplearning4j, aber komischer Knick am Anfang der Vorhersage Allgemeine Java-Themen 3
M Test geht auf Travis und mit Github Action schief aber nicht lokal Allgemeine Java-Themen 3
Zrebna FileUtils.cleanDirectory() - aber einen sub-Ordner "verschonen" Allgemeine Java-Themen 1
S Java.exe exestiert, aber irgendwie auch nicht Allgemeine Java-Themen 11
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
L Korrektur nach der Berechnung vornehmen, aber wie? Allgemeine Java-Themen 11
S Validation Null aber nicht Blank und muss Email sein Allgemeine Java-Themen 22
P Am Application Server - Selbe files aber trotzdem CNF Allgemeine Java-Themen 2
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
F Input/Output NullPointerException, aber wieso? [Apache POI] Allgemeine Java-Themen 11
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
K Erste Schritte Start einer JAR Datei 2 Wege aber einmal nicht die volle Funktionlität Allgemeine Java-Themen 20
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
B Web-Anwendung funktioniert mit Java 1.8, aber nicht mit Java 1.7 (auf Client) Allgemeine Java-Themen 5
K Programmfehler aber warum? Allgemeine Java-Themen 5
V Semikolonfehler,aber nicht lösbar.. Allgemeine Java-Themen 6
M String shuffeln, Anfang und Ende aber bleiben gleich Allgemeine Java-Themen 15
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
T .dll in java benutzen aber wie? Allgemeine Java-Themen 4
B Input/Output version.cfg konnte nicht im Klassenpfad gefunden werden, ist aber dort. Allgemeine Java-Themen 0
L Prog läuft in der IDE, hängt sich aber am Mac auf Allgemeine Java-Themen 0
E Sms empfangen aber wie? Allgemeine Java-Themen 6
R Software ausliefern - Aber Wie? Allgemeine Java-Themen 10
D Input/Output Datei wird lokal aber nicht vom Webserver ausgelesen... Allgemeine Java-Themen 2
J Compiler-Fehler Compiliert unter Eclipse aber nicht mit javac Allgemeine Java-Themen 0
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
B Threads Barrier mit wait()/notify() aber nicht alle Prozesse terminieren Allgemeine Java-Themen 2
S XML lesen, verarbeiten, speichern klappt in Eclipse, aber nicht in der JAR Allgemeine Java-Themen 4
R xx.xx.xx <-nur /w & /. aber !2x '.' hintereinander Allgemeine Java-Themen 6
P wieso kann ich auf bluej exportieren aber auf eclipse nicht? Allgemeine Java-Themen 2
H Scanner soll einen Inputredirect einlesen, liest aber nicht jedes Wort ein. Allgemeine Java-Themen 3
A NoSuchMethod aber Methode ist da! Allgemeine Java-Themen 4
F Objekt einer Datei verschieben, aber Verzeichnispfad fehlt Allgemeine Java-Themen 6
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
S java.util.ConcurrentModificationException - aber nur ein Thread Allgemeine Java-Themen 3
nrg Auszulagernder Part, der aber variable Methode/Klasse aufruft Allgemeine Java-Themen 7
F Verschlüsseln, aber welcher Algo Allgemeine Java-Themen 29
H Threads Thread stirbt aber Objekte in ihm leben weiter?! Allgemeine Java-Themen 9
D Internet Abfrage aber mit Warteschleife Allgemeine Java-Themen 6
T Objekt 2x deserialisieren, aber nur 1x im Heap haben? Allgemeine Java-Themen 4
K iText, HTML Einrückung im Document, aber nicht im Paragraph Allgemeine Java-Themen 3
F NullPointerException aber warum ? Allgemeine Java-Themen 9
S exec( "cmd /c") aber Konsole soll offen bleiben Allgemeine Java-Themen 9
K event dispatch thread fehler. Compiler meckert nicht aber der Interpreter? Warum?? Allgemeine Java-Themen 11
J Funktioniert aber nicht gut erweiterbar Allgemeine Java-Themen 3
M net4j in Eclipse, installiert aber nicht im Build-path Allgemeine Java-Themen 4
C Überwachen der Zwischenablage, aber wie? Allgemeine Java-Themen 10
J Process beenden ...aber wie ? Allgemeine Java-Themen 19
D Scanner leer aber bufferedReader nicht?! Allgemeine Java-Themen 2
B Exception wird geworfen, ich darf sie aber nicht abfangen. Allgemeine Java-Themen 10
J Comparable aber nicht immer Allgemeine Java-Themen 15
T JConsole: Klassen werden geladen aber nicht wieder entladen Allgemeine Java-Themen 3
T Datenbank lässt sich un Entwicklungsumgebung öffnen, aus .jar aber nicht Allgemeine Java-Themen 9
Z Boolean Abfrage gibt kein Boolean zurück, aber warum? Allgemeine Java-Themen 6
FoolMoon Datei zeilenweise einlesen, aber nicht die erste Zeile! Allgemeine Java-Themen 3
D Ich möchte meine *.java Dateien in Applets "umschreiben. Aber wie? Allgemeine Java-Themen 3
W Bild Spiegeln, aber Originalbild ausblenden Allgemeine Java-Themen 2
T Array durchsuchen - aber richtig Allgemeine Java-Themen 7
H Layout auslagern, aber wie genau??? Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben