Cliente OAuth2 para Delphi
OAuth 2.0 / OAuth 2.1 client component — Authorization Code with PKCE, Client Credentials, Device Code, refresh-token rotation and built-in browser flow.
OAuth 2.0 / OAuth 2.1 client component — Authorization Code with PKCE, Client Credentials, Device Code, refresh-token rotation and built-in browser flow.
Implements the OAuth 2.0 / 2.1 client side — covers Authorization Code (with PKCE), Client Credentials, Device Code and refresh-token flows. Includes a tiny embedded HTTP listener for the redirect URI.
TsgcHTTP_OAuth2_Client
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
Configure ClientId / ClientSecret / Scope / Endpoints (or use a Provider preset for Google / Microsoft / GitHub), call Start, then use Token in your HTTP calls.
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();
Implements the OAuth 2.0 client surface with PKCE, refresh-token rotation and an embedded loopback redirect listener.
Authorization Code (with optional PKCE per RFC 7636), Client Credentials (RFC 6749 §4.4), Device Code (RFC 8628) and Refresh Token (RFC 6749 §6) are all supported as typed methods.
Asigne auth2CodePKCE a OAuth2Options.GrantType, el componente genera el par code_verifier / code_challenge y los incluye según la RFC 7636 (obligatorio en OAuth 2.1).
Sibling components TsgcHTTP_OAuth2_Client_Google and TsgcHTTP_OAuth2_Client_Microsoft ship with the right endpoints and scopes pre-filled. Use the base class for everyone else.
The component spins up a tiny embedded HTTP listener on the configured RedirectURL, captures the authorization code, then shuts the listener down — no external web server required.
Lea CurrentRefreshToken tras la autorización y guárdelo usted mismo, luego llame a Refresh en el siguiente arranque para que no se vuelva a pedir la autenticación al usuario.
Pair with TsgcHTTPClient, TsgcHTTP2Client or TsgcWebSocketClient via Authentication.Token.OAuth — the bearer token is injected on every request automatically.
Fuentes autorizadas de los estándares que implementa este componente.
Enlace directo a la referencia del componente, descarga el proyecto demo listo para ejecutar y la prueba gratuita.
| Online Help — TsgcHTTP_OAuth2_Client Referencia completa de propiedades, métodos y eventos de este componente. | Abrir | |
| Demo Project — Demos\20.HTTP_Protocol\02.OAuth2_Authentication Proyecto de ejemplo listo para ejecutar. Se incluye en el paquete sgcWebSockets — descarga la prueba gratuita más abajo. | Abrir | |
| Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi y C++ Builder y referencias de fuentes primarias — solo este componente. | Abrir | |
| Manual de usuario (PDF) Manual completo que cubre todos los componentes de la biblioteca. | Abrir |