创建微信小程序的“身份应用”
与单页 Web 应用使用的 IdP 不同,对于微信小程序,它将身份应用程序(目录)与名为“第三方授权客户端(类型为微信小程序)”的客户端关联,第三方客户端关联后,意味着 IdP 将信任其已完成的身份验证,然后可以实现“身份验证联合”。
提示
“身份验证联合”是指在微信身份验证/授权服务器对小程序用户进行身份验证后,客户“SiX统一认证/授权”租户将直接信任已完成的身份验证,而不是通过其身份验证/授权服务器重复验证同一个小程序用户。
将在身份应用程序(目录)中为同一个小程序用户(基于他/她的智能手机)创建一个影子用户。
这带来了一个称为“统一数字身份”的概念,假设相同的 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 示例代码仓库
提示
如果您无法访问仓库,请通过 联系我们 上的联系信息与我们联系