OAuth2 与 Delphi WebSockets

· 功能

OAuth2 允许第三方应用通过 HTTP 协议访问受限资源。RFC 6749 是 OAuth2 的规范文档。OAuth2 定义了 4 种角色:


OAuth2 流程

 (A)客户端向资源所有者请求授权。授权请求可以直接发送给资源所有者(如图所示),也可以通过授权服务器作为中间方间接发送。

(B)客户端收到授权许可,即代表资源所有者授权的凭证,以本规范定义的四种授权类型之一或扩展授权类型表示。授权类型取决于客户端请求授权所用的方式以及授权服务器支持的类型。

(C)客户端通过向授权服务器进行身份验证并出示授权许可来请求访问令牌。

(D)授权服务器验证客户端身份和授权许可,若有效则颁发访问令牌。

(E)客户端向资源服务器请求受保护的资源,并通过出示访问令牌进行身份验证。

(F)资源服务器验证访问令牌,若有效则响应请求。


OAuth2 WebSocket 集成

sgcWebSockets 在 WebSocket 客户端组件中支持 Bearer 令牌。您只需在 TsgcWebSocketClient 中启用 Authentication 和 Token 属性,并设置客户端连接服务器时将发送的令牌即可。

Client := TsgcWebSocketClient.Create(nil);
Client.Authentication.Enabled := True;
Client.Authentication.Token.Enabled := True;
Client.Authentication.Token.AuthName := 'Bearer';
Client.Authentication.Token.AuthToken := '<your token here>';

 在下一个版本 sgcWebSockets 4.3.4 中,将发布专用的 OAuth2 组件,可自动获取 OAuth2 凭证。