Le client HTTP/2 prend en charge 2 types d'authentification : l'authentification Basic et l'authentification OAuth2.
Utilisez l'événement OnHTTP2Authorization pour gérer les deux types d'authentification.
Si le serveur renvoie un en-tête demandant une authentification Basic, définissez le nom d'utilisateur et le mot de passe dans 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;
Si le serveur retourne un en-tête demandant l'authentification par Bearer Token, définissez le jeton dans 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;
Si vous connaissez déjà la valeur Bearer, parce que vous l'avez obtenue par une autre méthode, vous pouvez passer la valeur Bearer en tant qu'en-tête HTTP en utilisant les propriétés suivantes de la requête, à définir avant d'appeler toute méthode de requête HTTP :
TsgcHTTP2Client.Request.BearerAuthentication = trueTsgcHTTP2Client.Request.BearerToken = "< value of the token >"
Lisez l'article suivant si vous souhaitez utiliser notre composant OAuth2 avec le client HTTP/2.