TsgcHTTP2Client | 客户端身份验证

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

如果服务器返回请求 Bearer 令牌身份验证的头部,请在 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 值

如果您已经知道 Bearer 值(因为您通过其他方式获得了它),可以使用请求的以下属性将 Bearer 值作为 HTTP 标头传递,只需在调用任何 HTTP 请求方法之前设置:

 

 TsgcHTTP2Client.Request.BearerAuthentication 
 = true

TsgcHTTP2Client.Request.BearerToken = "< value of the token >"

 

OAuth2

如果您想将 OAuth2 组件与 HTTP/2 客户端配合使用,请阅读以下文章。