聚合登录
多个子站各做一套账号,成本很高:注册、登录、找回密码、绑定手机,每个站都要重复一遍,用户还要记多套密码。
聚合登录把它们收口到一处:
- 用户只注册一次;
- 子站通过 OAuth 2.0 拿到统一用户标识;
- 支持微信、QQ 等主流登录方式(以登录页实际展示为准)。
适用场景
- 旗下有多个站点或后台,希望账号互通;
- 想快速接入微信 / QQ 登录,不想分别申请和对接;
- 需要统一的用户中心、单点退出。
角色
| 角色 | 是谁 | 做什么 |
|---|---|---|
| 用户 | 你的访客 | 在登录页授权 |
| 客户端 | 你的子站 | 发起授权、换取 token、读取用户标识 |
| 授权服务器 | 聚合登录 | 认证用户、签发 token |
接入方式
标准 OAuth 2.0 授权码模式(Authorization Code):
- 子站把用户跳转到授权页;
- 用户登录并同意授权;
- 授权服务器带
code回调到你的地址; - 子站用
code换access_token; - 用 token 读取用户信息,建立本地会话。
完整参数、回调和错误处理见 OAuth 接入。
开始之前
你需要准备:
- 一个已备案/可访问的回调地址(
redirect_uri); - 在聚合登录控制台创建一个应用,拿到
client_id和client_secret; - 把回调地址加入白名单。
密钥保管
client_secret 只能放在服务端,不要写进前端代码或公开仓库。泄露后立即在控制台重置。
常见问题
Q:能只用聚合登录,不要本地账号吗? 可以。用返回的 openid / unionid 作为本地用户主键即可。
Q:用户改了头像昵称,子站怎么同步? 登录时重新拉一次用户信息,或以聚合登录的回调/轮询为准。
Q:支持单点退出吗? 支持。退出时跳转授权服务器的登出地址,并清理本地会话。
Q:和微信开放平台直接对接有什么区别? 你不用分别申请各平台应用、处理不同协议,接入一次即可复用。