OAuth 2.0 服务器
sgcWebSockets HTTP 和 WebSocket 服务器的服务端 OAuth 2.0 保护组件。通过 JWT 验证或 RFC 7662 内省来校验访问令牌。
sgcWebSockets HTTP 和 WebSocket 服务器的服务端 OAuth 2.0 保护组件。通过 JWT 验证或 RFC 7662 内省来校验访问令牌。
轻量级资源服务器组件 — 通过 JWT 签名检查或 RFC 7662 令牌内省验证入站 Bearer 令牌,然后将解析后的声明暴露给您的应用程序。
TsgcHTTP_OAuth2_Server
Windows, macOS, Linux, iOS, Android
Enterprise
配置 JWT 密钥(或内省 URL),附加到 TsgcWebSocketHTTPServer.OAuth2 — 传入请求在处理器触发前先完成令牌验证。
uses
sgcWebSocket, sgcHTTP;
var
Server: TsgcWebSocketHTTPServer;
OAuth2: TsgcHTTP_OAuth2_Server;
begin
OAuth2 := TsgcHTTP_OAuth2_Server.Create(nil);
OAuth2.OAuth2Options.JWT.Algorithms.HS.Secret := 'shared-secret';
Server := TsgcWebSocketHTTPServer.Create(nil);
Server.Port := 8443;
Server.SSL := True;
Server.Authentication.OAuth2.Enabled := True;
Server.Authentication.OAuth2.Server := OAuth2;
Server.Active := True;
end;
// uses: sgcWebSocket, sgcHTTP
TsgcHTTP_OAuth2_Server *OAuth2 = new TsgcHTTP_OAuth2_Server(this);
OAuth2->OAuth2Options->JWT->Algorithms->HS->Secret = "shared-secret";
TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
Server->Authentication->OAuth2->Enabled = true;
Server->Authentication->OAuth2->Server = OAuth2;
Server->Active = true;
使用 JWT 验证或内省验证的访问令牌保护 HTTP 和 WebSocket 端点的资源服务器组件。
内置 JWT 验证器(HS / RS / ES / EdDSA),可对照静态密钥或 JWKS 端点验证 — 自包含令牌无需往返颁发者。
按 RFC 7662 设置 OAuth2Options.IntrospectionURL — 组件将入站令牌 POST 至颁发者并缓存带 TTL 的活跃/非活跃结果。
附加 OAuth2Options.RequiredScope 将访问限制为携带所选范围的令牌。OnAuthError 报告拒绝原因。
同时支持 HTTP 请求和 WebSocket 升级 — 在 OnConnect 触发前验证升级 Authorization 头(或查询令牌)。
实现 OnVerify 进行自定义声明检查(多租户 aud、动态范围映射、账户状态)。返回 Accept = False 以短路并返回 401。
TsgcHTTP_OAuth2_Server_Provider 将本组件扩展为完整授权服务器(颁发者):带持久化客户端/刷新令牌存储的授权、令牌和撤销端点。