Delphi OAuth2 クライアント
OAuth 2.0 / OAuth 2.1 クライアントコンポーネントです。PKCE 付き認可コード、クライアントクレデンシャル、デバイスコード、リフレッシュトークンのローテーション、内蔵ブラウザフローに対応しています。
OAuth 2.0 / OAuth 2.1 クライアントコンポーネントです。PKCE 付き認可コード、クライアントクレデンシャル、デバイスコード、リフレッシュトークンのローテーション、内蔵ブラウザフローに対応しています。
OAuth 2.0 / 2.1 のクライアントサイドを実装しています。PKCE 付き認可コード、クライアントクレデンシャル、デバイスコード、リフレッシュトークンフローに対応しており、リダイレクト URI 用の小型組み込み HTTP リスナーも含まれています。
TsgcHTTP_OAuth2_Client
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
ClientId / ClientSecret / スコープ / エンドポイントを設定(または Google / Microsoft / GitHub のプロバイダープリセットを使用)し、Start を呼び出した後、HTTP 呼び出しにトークンを使用してください。
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();
PKCE、リフレッシュトークンのローテーション、組み込みループバックリダイレクトリスナーを備えた OAuth 2.0 クライアントインターフェースを実装しています。
認可コード(RFC 7636 によるオプションの PKCE 付き)、クライアントクレデンシャル(RFC 6749 §4.4)、デバイスコード(RFC 8628)、リフレッシュトークン(RFC 6749 §6)がすべて型付きメソッドとしてサポートされています。
OAuth2Options.GrantType に auth2CodePKCE を設定すると、コンポーネントが code_verifier / code_challenge ペアを生成し、RFC 7636 に従って送信します(OAuth 2.1 では必須)。
兄弟コンポーネントの TsgcHTTP_OAuth2_Client_Google と TsgcHTTP_OAuth2_Client_Microsoft は、適切なエンドポイントとスコープがあらかじめ設定されています。その他のプロバイダーにはベースクラスを使用してください。
コンポーネントは設定された RedirectURL 上に小型の組み込み HTTP リスナーを起動し、認可コードを取得した後リスナーをシャットダウンします。外部 Web サーバーは不要です。
認可後に CurrentRefreshToken を読み取ってアプリ側で保存し、次回起動時に Refresh を呼び出せば、ユーザーへの認証要求が再度発生しません。
Authentication.Token.OAuth 経由で TsgcHTTPClient、TsgcHTTP2Client、または TsgcWebSocketClient と組み合わせると、すべてのリクエストにベアラートークンが自動的に挿入されます。
このコンポーネントが実装する標準規格の公式ソースです。
コンポーネントリファレンスへの直接リンク、すぐに実行できるデモプロジェクトの入手、体験版のダウンロードができます。
| オンラインヘルプ — TsgcHTTP_OAuth2_Client このコンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。 | 開く | |
| デモプロジェクト — Demos\20.HTTP_Protocol\02.OAuth2_Authentication すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。以下から体験版をダウンロードできます。 | 開く | |
| 技術ドキュメント (PDF) このコンポーネントの機能、クイックスタート、Delphi および C++ Builder 向けのコードサンプル、一次資料のリファレンスを掲載しています。 | 開く | |
| ユーザーマニュアル (PDF) ライブラリのすべてのコンポーネントを網羅した総合マニュアルです。 | 開く |