HTTP/2 クライアントは 2 種類の認証タイプをサポートしています: Basic 認証と OAuth2 認証。
両方の認証タイプを処理するには、OnHTTP2Authorization イベントを使用します。
サーバーが基本認証を要求するヘッダーを返した場合、OnHTTP2Authorization でユーザー名とパスワードを設定します。
oClient := TsgcHTTP2Client.Create(nil);
oClient.OnHTTP2Authorization := OnHTTP2AuthorizationEvent;
...
procedure OnHTTP2AuthorizationEvent(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const AuthType, AuthData: string; var UserName, Password, aToken: string; var Handled: Boolean);
begin
if AuthType = 'Basic' then
begin
UserName := 'user';
Password := 'secret';
end;
end;
サーバーがBearer Token Authenticationを要求するヘッダーを返した場合は、 OnHTTP2Authorizationにトークンを設定します。
oClient := TsgcHTTP2Client.Create(nil);
oClient.OnHTTP2Authorization := OnHTTP2AuthorizationEvent;
...
procedure OnHTTP2AuthorizationEvent(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const AuthType, AuthData: string; var UserName, Password, aToken: string; var Handled: Boolean);
begin
if AuthType = 'Bearer' then
begin
aToken := 'bearer token';
end;
end;
Bearer 値を別のメソッドで取得してすでに知っている場合は、次のリクエストプロパティを使用して HTTP ヘッダーとして Bearer 値を渡すことができます。HTTP リクエストメソッドを呼び出す前に設定してください:
TsgcHTTP2Client.Request.BearerAuthentication = trueTsgcHTTP2Client.Request.BearerToken = "< value of the token >"
HTTP/2 クライアントで OAuth2 コンポーネントを使用する方法については以下の記事をお読みください。