创建微信小程序的“身份应用”
与单页 Web 应用使用的 IdP 不同,对于微信小程序,它将身份应用程序(目录)与名为“第三方授权客户端(类型为微信小程序)”的客户端关联,第三方客户端关联后,意味着 IdP 将信任其已完成的身份验证,然后可以实现“身份验证联合”。
提示
身份认证联合 (Authentication Federation) 意味着当小程序用户通过微信认证/授权服务器完成身份验证后,您的 “SiX统一认证与授权” 租户将直接信任该认证结果。这避免了通过平台自身服务器对同一用户进行重复认证。
在此流程中,系统会在身份应用(目录)中为该小程序用户(基于其移动端唯一标识)自动创建一个影子用户 (Shadow User)。
这实现了“统一数字身份 (Unified Digital Identity)”的概念:由于同一个 IdP 可以被用于各种平台(如 SPA 或原生应用),用户在不同应用间将保持一致的身份标识,并共享相同的 ID Token 和个人资料。
交互流程
以下是一个或多个微信小程序利用“SiX统一认证与授权”实现身份认证联合的典型流程。

为微信小程序创建 IdP 的步骤
1. 创建身份应用程序
登录“SiX统一认证与授权”控制台。
导航到菜单:“认证管理->创建身份应用”,为微信小程序创建身份应用程序。
2. 创建一个微信小程序“第三方授权客户端(类型为微信小程序)”,并将其与身份应用程序关联
登录“SiX统一认证与授权”控制台。
导航至菜单:“授权管理->创建第三方授权客户端”,创建类型为微信小程序的“第三方授权客户端”,并将此客户端绑定到“身份应用”。
3. 与微信小程序联合认证
小程序用户通过微信认证/授权服务器认证后,将生成仅微信识别的“授权码”。
如果此小程序用户之前已在 IdP 中注册,您的小程序逻辑可以使用此“授权码”交换由客户 “SiX统一认证与授权” 租户 (IdP) 认证/授权服务器生成的 ID 令牌和访问令牌。
提示
使用 API 文档 中的 API“/federation/wechat/miniapp/profile”端点交换令牌。
如果小程序用户未注册,您的小程序逻辑可以启动用户“注册/绑定”操作。
提示
使用 API 文档 中的 API“/federation/wechat/miniapp/bindUser”端点注册/绑定小程序用户。
示例
微信小程序 IdP 示例代码仓库
提示
如果您无法访问仓库,请通过 联系我们 上的联系信息与我们联系