授权码 + PKCE
为 Web、移动端与单页应用签发令牌。登录与同意交互回到你自己的页面完成。
阅读流程 →v0.1.4 · Go 1.27 · Apache-2.0
Wicket 以一个 http.Handler 中间件交付完整的 OpenID Connect 与 OAuth 2.0 协议端点。
登录页、用户库、部署方式都由你决定——它只负责把协议做对。
go get github.com/gonewx/wicket@v0.1.4
// 1. 组合根:装配全部协议服务
root, err := di.NewRoot()
if err != nil { log.Fatal(err) }
defer root.Close()
// 2. 注入客户端、资源、签名密钥与存储
cfg := root.ServerConfig()
cfg.SetClients(clients)
cfg.SetApiScopes(scopes)
cfg.SetRefreshTokenStore(store.NewRefreshTokenStore(pool, logger))
cfg.Freeze() // 漏注入的存储在此直接报错
// 3. 挂到你现有的路由前面
srv, _ := server.DefaultServer(root)
http.ListenAndServe(":443",
hosting.ScopeMiddleware(root)(srv.UseWicket()(app)))
协议路径由 Wicket 处理,其余请求一字不改地交给你的应用。没有旁路服务,没有跨进程调用。
按标准实现,按需开启。每项能力都对应一组可以直接读的源码与测试。
为 Web、移动端与单页应用签发令牌。登录与同意交互回到你自己的页面完成。
阅读流程 →服务对服务调用的最短路径:一个客户端、一个作用域、一次请求。
阅读流程 →通过 offline_access 获得长期访问,由带版本号的刷新令牌存储承载。
由服务端发起、在用户自己的设备上确认的认证,适合客服与柜台场景。
阅读流程 →标准的 .well-known 元数据、公钥集合与令牌内省端点,资源服务开箱可接。
登出端点与登出后重定向,以及可替换的服务端会话存储。
阅读流程 →Google、Facebook 登录与 JWT Bearer 认证,通过可插拔的方案处理器接入。
身份接入 →keymgmt 包按候选、生效、保留、退役四个阶段轮换密钥,旧令牌在轮换期间依然可以验签。
Wicket 主模块不依赖任何数据库驱动。存储被拆成三族接口,由你选择实现。
github.com/gonewx/wicket-pg,自带迁移。storagetest、sessiontest、keymgmttest,适配器跑通即可声明版本兼容。任何存储未注入、又没有显式声明内存回退时,启动阶段直接报错,而不是在多副本环境里随机丢令牌。
过期数据的清理入口交给宿主调度。何时跑、跑多久、怎么记日志,都在你的掌控之中。
统一使用注入的时钟判断过期,不依赖数据库时间,避免集群内时钟漂移带来的分歧。
oidcverifywechatverifyphoneverifyWicket 处于 0.x 阶段:核心授权路径有集成测试与端到端测试覆盖,公开 API 仍可能调整。 部分能力尚未完整落地,包括设备授权与撤销端点、刷新令牌的有效期策略、前/后通道登出;微信与号码认证尚未完成真实凭据联调。 我们在文档里如实标注每项能力的状态。
十分钟跑起第一个令牌