当客户端需要新的访问令牌时,自动启动 HTTP 服务器以处理来自授权服务器的响应。
此组件允许您处理客户端与其他角色之间的流程。基本上,当您设置 Active := True 时,会打开一个新的 Web 浏览器并请求用户授予授权;如果成功,授权服务器向应用程序发送一个令牌,组件对其进行处理,客户端随后可以使用该令牌连接到资源服务器。此组件启动一个简单的 HTTP 服务器,用于处理授权服务器响应,并使用 HTTP 客户端请求访问令牌。
GrantType
客户端支持以下授权类型:
auth2Code:用于在大多数应用程序类型(包括单页应用、Web 应用和原生安装应用)中执行身份验证和授权。该流程使应用能够安全获取可用于访问受保护资源的 access_token,以及用于获取额外 access_token 的刷新令牌,以及已登录用户的 ID 令牌。

auth2CodePKCE:与 auth2Code 身份验证流程相同,但启用了 PKCE。PKCE(代码交换证明密钥)是 OAuth 2.0 的安全扩展,旨在增强本机和单页应用程序授权流程的安全性。它降低了拦截攻击的风险,尤其是在公共客户端中,授权码在传输过程中可能面临被拦截的风险。通常,此选项用于本机应用和移动应用。
auth2ClientCredentials:此授权类型通常用于必须在后台运行且无需用户立即交互的服务器间交互。此类应用程序通常称为守护程序或服务账户。

auth2DeviceCode:设备授权授权(RFC 8628),适用于缺乏浏览器或输入能力有限的输入受限设备,如智能电视、媒体控制台和 IoT 设备。设备显示用户代码和验证 URI;用户在辅助设备(手机或电脑)上访问该 URI 并输入代码以完成授权。
LocalServerOptions
当客户端需要新的访问令牌时,自动启动一个 HTTP 服务器以处理来自授权服务器的响应。该服务器对用户透明,通常在 localhost 上运行。默认使用 8080 端口,如有需要可更改。
AuthorizationServerOptions
在此处设置授权和访问令牌的 URL,通常由 API 规范提供。Scope 是客户端请求的所有范围的列表。示例:
OAuth2Options
ClientId 是必填字段,用于告知服务器客户端的标识符。请查阅您的 API 规范以了解如何获取 ClientId。客户端密钥同理。
有时,服务器要求使用基本认证提供用户名和密码进行连接,如果是这种情况,您可以在 Username/Password 字段中进行设置。示例:
HTTPClientOptions
在此处,您可以自定义连接到 HTTP 服务器以请求新令牌时的客户端选项。
TLSOptions:若启用 TLS,可在此处自定义部分 TLS 属性。
ALPNProtocols:将发送到服务器的 ALPN 协议列表。
RootCertFile:根证书文件的路径。
CertFile:证书文件的路径。
KeyFile:证书密钥文件的路径。
Password:如果证书有密码保护,请在此处设置。
VerifyCertificate:如果必须验证证书,请启用此属性。
VerifyDepth:一个整数属性,表示对 X.509 证书执行验证时允许的最大链路数。
Version:默认使用 TLS 1.0,如果服务器需要更高的 TLS 版本,可在此处选择。
IOHandler:选择使用哪个库通过 TLS 进行连接。
iohOpenSSL:使用 OpenSSL 库,是 Indy 组件的默认选项。需要为 win32/win64 部署 OpenSSL 库。
iohSChannel:使用由 Microsoft 为 Windows 实现的安全通道安全协议,无需部署 openssl 库。仅适用于 Windows 32/64 位。
OpenSSL_Options: 允许定义将使用的 OpenSSL API。
APIVersion:允许定义将使用哪个 OpenSSL API 版本。
oslAPI_1_0: 使用 API 1.0 OpenSSL,这是 Indy 支持的最新版本
oslAPI_1_1:使用 OpenSSL API 1.1,需要我们定制的 Indy 库,并支持 OpenSSL 1.1.1 库(含 TLS 1.3 支持)。
oslAPI_3_0:使用 API 3.0 OpenSSL,需要我们的自定义 Indy 库,并允许使用 OpenSSL 3.0.0 库(支持 TLS 1.3)。
LibPath: 在此处您可以配置 openSSL 库的位置
oslpNone:这是默认值,OpenSSL 库应与二进制文件位于同一文件夹中,或位于已知路径中。
oslpDefaultFolder:自动设置所有 IDE 版本应查找 OpenSSL 库的路径。
oslpCustomFolder: 如果选择此选项,请在属性 LibPathCustom 中定义完整路径。
LibPathCustom:当 LibPath = oslpCustomFolder 时,在此处定义 openSSL 库所在的完整路径。
UnixSymLinks: 启用或禁用在 Unix 系统下加载符号链接(默认启用,OSX64 除外):
oslsSymLinksDefault: 默认情况下启用,但在 OSX64 下除外(MacOS Monterey 之后,不带版本号尝试加载库会失败)。
oslsSymLinksLoadFirst:先加载符号链接,然后再尝试加载版本库。
oslsSymLinksLoad: 在尝试加载版本库后加载符号链接。
oslsSymLinksDontLoad:不加载符号链接。
SChannel_Options:允许您使用 Windows 证书存储中的证书。
CertHash:是证书哈希值。您可以在 PowerShell 中运行 dir 命令找到证书哈希值。
CertStoreName:存储证书的存储名称。从以下选项中选择:
scsnMY(默认值)
scsnCA
scsnRoot
scsnTrust
CertStorePath:存储证书的存储路径。请从以下选项中选择:
scspStoreCurrentUser(默认值)
scspStoreLocalMachine
LogOptions:如果设置了文件名,将保存 HTTP 客户端的 HTTP 请求/响应日志