Delphi OAuth2 Client
OAuth-2.0-/-2.1-Client-Komponente - Authorization Code mit PKCE, Client Credentials, Device Code, Refresh-Token-Rotation und integriertem Browser-Flow.
OAuth-2.0-/-2.1-Client-Komponente - Authorization Code mit PKCE, Client Credentials, Device Code, Refresh-Token-Rotation und integriertem Browser-Flow.
Implementiert die OAuth-2.0-/-2.1-Client-Seite - deckt Authorization Code (mit PKCE), Client Credentials, Device Code und Refresh-Token-Flows ab. Enthält einen kleinen eingebetteten HTTP-Listener für die Redirect-URI.
TsgcHTTP_OAuth2_Client
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
Konfiguriere ClientId / ClientSecret / Scope / Endpoints (oder verwende eine Anbieter-Voreinstellung für Google, Microsoft oder GitHub), rufe Start auf und nutze Token dann in deinen HTTP-Aufrufen.
uses
sgcHTTP, sgcHTTP_OAuth_Types;
// OAuth2 is a form field: OAuth2: TsgcHTTP_OAuth2_Client;
procedure TForm1.Authorize;
begin
OAuth2 := TsgcHTTP_OAuth2_Client.Create(nil);
OAuth2.OnAfterAccessToken := OnAfterAccessTokenEvent;
OAuth2.OAuth2Options.GrantType := auth2CodePKCE;
OAuth2.OAuth2Options.ClientId := 'your-client-id';
OAuth2.OAuth2Options.ClientSecret := 'your-client-secret';
OAuth2.AuthorizationServerOptions.AuthURL := 'https://auth.example.com/authorize';
OAuth2.AuthorizationServerOptions.TokenURL := 'https://auth.example.com/token';
OAuth2.AuthorizationServerOptions.Scope.Clear;
OAuth2.AuthorizationServerOptions.Scope.Add('profile');
OAuth2.AuthorizationServerOptions.Scope.Add('email');
OAuth2.LocalServerOptions.IP := '127.0.0.1';
OAuth2.LocalServerOptions.Port := 5555;
OAuth2.LocalServerOptions.RedirectURL := 'http://localhost:5555/callback';
// Spawns the user browser at the auth URL and returns immediately
OAuth2.Start;
end;
// ... the user logs in, the browser is redirected to the callback URL,
// ... the component captures the code and exchanges it for tokens
procedure TForm1.OnAfterAccessTokenEvent(Sender: TObject; const Access_Token,
Token_Type, Expires_In, Refresh_Token, Scope, RawParams: String;
var Handled: Boolean);
begin
ShowMessage(Access_Token);
end;
// uses: sgcHTTP, sgcHTTP_OAuth_Types
TsgcHTTP_OAuth2_Client *OAuth2 = new TsgcHTTP_OAuth2_Client(this);
OAuth2->OnAfterAccessToken = OnAfterAccessTokenEvent;
OAuth2->OAuth2Options->GrantType = auth2CodePKCE;
OAuth2->OAuth2Options->ClientId = "your-client-id";
OAuth2->OAuth2Options->ClientSecret = "your-client-secret";
OAuth2->AuthorizationServerOptions->AuthURL = "https://auth.example.com/authorize";
OAuth2->AuthorizationServerOptions->TokenURL = "https://auth.example.com/token";
OAuth2->AuthorizationServerOptions->Scope->Clear();
OAuth2->AuthorizationServerOptions->Scope->Add("profile");
OAuth2->AuthorizationServerOptions->Scope->Add("email");
OAuth2->LocalServerOptions->IP = "127.0.0.1";
OAuth2->LocalServerOptions->Port = 5555;
OAuth2->LocalServerOptions->RedirectURL = "http://localhost:5555/callback";
OAuth2->Start();
Implementiert die OAuth-2.0-Client-Oberfläche mit PKCE, Refresh-Token-Rotation und einem eingebetteten Loopback-Redirect-Listener.
Authorization Code (optional mit PKCE gemäß RFC 7636), Client Credentials (RFC 6749 §4.4), Device Code (RFC 8628) und Refresh Token (RFC 6749 §6) werden alle als typisierte Methoden unterstützt.
Setzen Sie OAuth2Options.GrantType auf auth2CodePKCE, die Komponente erzeugt das Paar code_verifier / code_challenge und sendet es gemäß RFC 7636 (in OAuth 2.1 verpflichtend).
Sibling Komponenten TsgcHTTP_OAuth2_Client_Google and TsgcHTTP_OAuth2_Client_Microsoft ship mit dem richtige endpoints and scopes pre-filled. Use the base class for everyone else.
Die Komponente startet einen kleinen eingebetteten HTTP-Listener auf der konfigurierten RedirectURL, fängt den Autorisierungscode ab und fährt den Listener anschließend wieder herunter - ohne externen Webserver.
Lesen Sie CurrentRefreshToken nach der Autorisierung aus und speichern Sie ihn selbst, rufen Sie dann beim nächsten Start Refresh auf, damit der Benutzer nicht erneut aufgefordert wird.
Pair with TsgcHTTPClient, TsgcHTTP2Client or TsgcWebSocketClient via Authentication.Token.OAuth — der Bearer-Token is injected on every request automatically.
Maßgebliche Quellen für die Standards, die diese Komponente implementiert.
Springe direkt zur Komponentenreferenz, lade das einsatzbereite Demo-Projekt herunter und teste die Testversion.
| Online-Hilfe — TsgcHTTP_OAuth2_Client Vollständige Eigenschaften-, Methoden- und Ereignisreferenz für diese Komponente. | Öffnen | |
| Demo Project — Demos\20.HTTP_Protocol\02.OAuth2_Authentifizierung Einsatzbereites Beispielprojekt. Im sgcWebSockets-Paket enthalten — lade unten die Testversion herunter. | Öffnen | |
| Technisches Dokument (PDF) Funktionen, Schnellstart, Codebeispiele für Delphi & C++ Builder und Primärquellenreferenzen — nur für diese Komponente. | Öffnen | |
| Benutzerhandbuch (PDF) Umfassendes Handbuch zu jeder Komponente der Bibliothek. | Öffnen |