Delphi OAuth2 İstemcisi

OAuth 2.0 / OAuth 2.1 istemci bileşeni — PKCE ile Authorization Code, Client Credentials, Device Code, refresh-token döndürme ve yerleşik tarayıcı akışı.

TsgcHTTP_OAuth2_Client

OAuth 2.0 / 2.1 istemci tarafını uygular — Authorization Code (PKCE ile), Client Credentials, Device Code ve refresh-token akışlarını kapsar. Yönlendirme URI'si için küçük gömülü bir HTTP dinleyicisi içerir.

Bileşen sınıfı

TsgcHTTP_OAuth2_Client

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Standard / Professional / Enterprise

Sağlayıcıyı yapılandırın, akışı başlatın

ClientId / ClientSecret / Scope / Endpoints değerlerini yapılandırın (veya Google / Microsoft / GitHub için bir Provider hazır ayarı kullanın), Start çağırın, ardından HTTP çağrılarınızda Token kullanın.

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

İçeriğinde neler var

OAuth 2.0 istemci yüzeyini PKCE, refresh-token döndürme ve gömülü bir loopback yönlendirme dinleyicisi ile uygular.

Akışlar

Authorization Code (RFC 7636'ya göre isteğe bağlı PKCE ile), Client Credentials (RFC 6749 §4.4), Device Code (RFC 8628) ve Refresh Token (RFC 6749 §6) tipli metotlar olarak desteklenir.

Varsayılan olarak PKCE

OAuth2Options.GrantType değerini auth2CodePKCE yapın, bileşen code_verifier / code_challenge çiftini oluşturur ve bunları RFC 7636'ya göre dahil eder (OAuth 2.1'de zorunlu).

Sağlayıcı hazır ayarları

Kardeş bileşenler TsgcHTTP_OAuth2_Client_Google ve TsgcHTTP_OAuth2_Client_Microsoft, doğru uç noktalar ve kapsamlar önceden doldurulmuş olarak gelir. Diğer herkes için temel sınıfı kullanın.

Loopback yönlendirme dinleyicisi

Bileşen, yapılandırılan RedirectURL üzerinde küçük gömülü bir HTTP dinleyicisi başlatır, yetkilendirme kodunu yakalar, ardından dinleyiciyi kapatır — harici bir web sunucusu gerekmez.

Token kalıcılığı

Yetkilendirmeden sonra CurrentRefreshToken değerini okuyup kendiniz saklayın, sonraki açılışta Refresh çağırın; böylece kullanıcıya yeniden sorulmaz.

HTTP / WebSocket için hazır eklenti

Authentication.Token.OAuth aracılığıyla TsgcHTTPClient, TsgcHTTP2Client veya TsgcWebSocketClient ile eşleştirin — bearer token her isteğe otomatik olarak eklenir.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı standartlar için yetkili kaynaklar.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, kullanıma hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — TsgcHTTP_OAuth2_Client Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\20.HTTP_Protocol\02.OAuth2_Authentication Kullanıma hazır örnek proje. sgcWebSockets paketi içinde gelir — aşağıdan denemeyi indirin.
Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Delphi'ye OAuth 2.0 Eklemeye Hazır mısınız?

Ücretsiz denemeyi indirin ve OAuth 2.0 / 2.1 kimlik doğrulamasını Delphi uygulamalarınıza entegre edin.