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.

TsgcHTTP_OAuth2_Client

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.

Komponentenklasse

TsgcHTTP_OAuth2_Client

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Standard / Professional / Enterprise

Anbieter konfigurieren, Flow starten

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();

Was steckt drin

Implementiert die OAuth-2.0-Client-Oberfläche mit PKCE, Refresh-Token-Rotation und einem eingebetteten Loopback-Redirect-Listener.

Flows

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.

PKCE standardmäßig

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).

Anbieter-Voreinstellungen

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.

Loopback-Redirect-Listener

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.

Token-Persistenz

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.

Drop-in für HTTP / WebSocket

Pair with TsgcHTTPClient, TsgcHTTP2Client or TsgcWebSocketClient via Authentication.Token.OAuth — der Bearer-Token is injected on every request automatically.

Spezifikationen und Referenzen

Maßgebliche Quellen für die Standards, die diese Komponente implementiert.

Dokumentation & Demos

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.
Demo Project — Demos\20.HTTP_Protocol\02.OAuth2_Authentifizierung Einsatzbereites Beispielprojekt. Im sgcWebSockets-Paket enthalten — lade unten die Testversion herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Codebeispiele für Delphi & C++ Builder und Primärquellenreferenzen — nur für diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch zu jeder Komponente der Bibliothek.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Bereit, OAuth 2.0 zu Delphi hinzuzufügen?

Lade die kostenlose Testversion herunter und integriere OAuth-2.0-/-2.1-Authentifizierung in deine Delphi-Anwendungen.