社交账号登录与绑定 · 配置说明

在统一认证站登录页或账户能力中接入 GitHub、Google 等:开放平台回调地址与凭据配置说明。

打开原始 .md

社交账号登录与绑定 · 配置说明

本文面向:基于统一认证服务搭建登录体验 的产品、前端与运营同学——在统一认证站(或嵌入其登录能力的产品)中,为用户提供 GitHub、Google、Gitee 等第三方账号的登录账号绑定

若你要做的是让外部独立应用使用「统一认证账号」登录,请改用 使用统一认证登录你的应用 · 接入指引(OAuth 授权码流程),与本文不是同一套接口。


你需要完成的两类配置

1. 在各第三方开放平台登记应用

在 GitHub、Google 等平台创建 OAuth 应用,并把授权回调地址配置为(将根地址换成实际认证服务地址,{provider} 为小写提供商标识):

https://auth.ncvic.com/api/oauth/callback/{provider}

示例:

  • GitHub:https://auth.ncvic.com/api/oauth/callback/github
  • Google:https://auth.ncvic.com/api/oauth/callback/google
  • Gitee:https://auth.ncvic.com/api/oauth/callback/gitee

回调地址须与各平台控制台要求一致(协议、域名、路径)。

2. 在统一认证服务侧填写平台下发的凭据

在运行统一认证服务的环境或配置中心,按下面命名规则填写各平台提供的 Client ID / Client Secret(名称可能因部署方式不同而对应为环境变量、密钥管理或配置项)。

通用规则(多数平台):

{PROVIDER}_CLIENT_ID=...
{PROVIDER}_CLIENT_SECRET=...

其中 {PROVIDER} 为提供方 ID 的大写,例如 GITHUB_CLIENT_IDGITHUB_CLIENT_SECRET

例外(常见)

平台说明
支付宝通常使用应用 ID 及平台要求的密钥格式,请按支付宝开放平台「网页/移动应用」创建与授权文档填写
抖音常使用 DOUYIN_CLIENT_KEYDOUYIN_CLIENT_SECRET 对应平台下发的 client_key / secret

未正确配置凭据的提供方不会在登录界面可用;当前已启用的列表以接口为准,见下文「如何知道可以展示哪些登录方式」。


登录与绑定在行为上的区别

场景建议引导用户访问
用户尚未登录,要用第三方账号登录GET https://auth.ncvic.com/api/oauth/{provider}
用户已登录,要把第三方账号绑到现有账号GET https://auth.ncvic.com/api/oauth/bind/{provider}

未登录用户访问绑定地址时,一般会先被引导去登录,再返回继续绑定。具体跳转与 Cookie 行为见 API 参考


如何知道可以展示哪些登录方式

在构建登录页或账户设置页时,可先请求:

GET https://auth.ncvic.com/api/oauth/providers

成功时,响应 JSON 中的 data当前已配置好凭据的提供方 ID 数组(小写字符串,如 githubgoogle)。仅应对用户展示列表中出现的提供方,避免展示未配置的按钮。


用户没有邮箱时的处理

部分第三方账号可能没有可用邮箱。统一认证站可能进入补绑邮箱流程,由站内页面引导用户完成验证。实现上可能使用 POST /api/oauth/email/sendPOST /api/oauth/email/verify(浏览器侧、带站内临时会话),细节见 API 参考使用统一认证登录你的应用 · API 参考 中同名接口说明。


提供方能力与文档

实际支持的第三方、授权范围与各平台注册入口,以 GitHub/Google 等平台最新文档 为准;统一认证服务侧会按已配置的提供方返回 providers 列表。若某提供方未在列表中出现,请检查凭据是否已填写、平台回调 URL 是否与上文一致。