Klient HTTP/2 obsługuje 2 typy uwierzytelniania: uwierzytelnianie podstawowe (Basic Authentication) i uwierzytelnianie OAuth2.
Należy użyć zdarzenia OnHTTP2Authorization, aby obsługiwać oba typy uwierzytelniania.
Jeśli serwer zwraca nagłówek żądający uwierzytelnienia Basic, należy ustawić nazwę użytkownika i hasło w 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;
Jeśli serwer zwróci nagłówek z żądaniem uwierzytelnienia tokenem Bearer, należy ustawić token w zdarzeniu 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;
Jeśli wartość Bearer jest już znana, ponieważ została uzyskana inną metodą, można ją przekazać jako nagłówek HTTP przy użyciu następujących właściwości żądania; należy je ustawić przed wywołaniem dowolnej metody żądania HTTP:
TsgcHTTP2Client.Request.BearerAuthentication = trueTsgcHTTP2Client.Request.BearerToken = "< value of the token >"
Przeczytaj następujący artykuł, jeśli chcesz używać naszego komponentu OAuth2 z klientem HTTP/2.