Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.638 Beiträge
 
#2

AW: OAuth2-Fenster öffnen und Redirect-Url abfangen

  Alt 25. Aug 2021, 15:06
Ich habe mich dann mal etwas erkundigt und herausgefunden, dass es ja sowas wie eine BrowserKomponente in Delphi gibt. Jetzt zu meiner

eigentlichen Frage:

Kann man obiges auch darin umsetzen, um mehr Kontrolle über den Ablauf zu erhalten? Sowas wie ein 'warte, solange noch kein redirekt stattgefunden hat',
'lese url', 'schließe browserfenster'? ^^
Siehe erst einmal meine Antwort hier: https://www.delphipraxis.net/1492957-post11.html
Kurzum: Nein. Die OAuth-Spezifikation ist da extrem eindeutig und sagt: Nimm den Default-Browser des Systems. Der IDP kann (und sollte) darüber hinaus versuchen, die Nutzung von Embedded Browsern aktiv zu verhindern.

Eine andere Lösung (ggf. elegantere Lösung) wäre, dass Du für Deine Anwendung ein custom Url-Schema registrierst. z.B.: meinProgramm://auth?code=xyz
Diese custom url trägst Du dann im IDP ein. Hat auch den Vorteil, dass Du keinen HttpListener aufmachen musst und der redirect nicht auf eine unsichere, nicht-https-Url geht.

Der Browser bekommt den redirect auf diese Url, und Windows (oder Linux oder macOS oder Android oder iOS, geht ja Plattformübergreifend) ruft dann Dein Programm mit dieser Url als Parameter auf. Die neu gestartete Instanz kann dann deiner laufenden Instanz z.B. über Shared Memory oder Named Pipes oder ähnliches eine Nachricht mit der Antwort vom IDP schicken.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat