锋翎文档
Go SDK

架构设计

Beacon SSO SDK 架构设计说明

架构设计

Beacon SSO SDK 采用分层架构设计,与 bamboo-base-go 框架深度集成。

整体架构

依赖注入模式

SDK 采用 bamboo-base-go 的 Register 依赖注入模式:

// startup/startup.go
func NewStartupConfig(exclude ...string) []xRegNode.RegNodeList

该函数聚合了以下注册节点:

节点名称说明
oAuthConfigOAuth2 核心配置(ClientID、Endpoint 等)
oAuthRedirectURIOAuth2 重定向地址
ssoClientSsoClient gRPC 客户端

排除节点

你可以通过 exclude 参数排除特定节点:

// 排除 gRPC 客户端(仅使用 OAuth2)
nodes := bSdkStartup.NewStartupConfig("ssoClient")

// 排除 OAuth 配置(使用自定义配置)
nodes := bSdkStartup.NewStartupConfig("oAuthConfig", "oAuthRedirectURI")

核心模块职责

模块目录职责
Startupstartup/依赖注入节点定义
Routeroute/Gin 路由注册
Handlerhandler/HTTP 请求处理
Logiclogic/业务逻辑封装
Clientclient/gRPC 客户端
Repositoryrepository/数据仓储层
Modelsmodels/数据模型定义
Middlewaremiddleware/Gin 中间件
Constantconstant/常量定义
Utilityutility/工具函数

两大子系统

OAuth2 子系统

基于 golang.org/x/oauth2 扩展,提供:

  • 授权码流程 - State + PKCE 防护
  • Token 管理 - Redis 缓存、自动刷新
  • 业务能力 - Userinfo、Introspection(带缓存)

gRPC 子系统

基于 connectrpc.com/connect 实现,提供:

服务说明认证要求
Public公共服务(发送验证码)
Auth认证服务(注册/登录/改密)App 凭证
User用户服务(获取用户信息)App 凭证 + User Token
Merchant商户服务(标签/公告)App 凭证

与 bamboo-base-go 的集成

SDK 依赖 bamboo-base-go 的以下能力:

能力用途
xReg.Register依赖注入容器
xCtxUtil.MustGetDB从上下文获取数据库
xCtxUtil.MustGetRDB从上下文获取 Redis
xError统一错误处理
xLog结构化日志
xResult统一响应格式

确保你的项目已正确配置 bamboo-base-go 框架。

On this page