公共服务平台·微信登录开放网关 WeChat Auth Platform · 由公共服务平台提供
检测中…

把微信扫码登录开放给其他项目

公共服务平台已封装微信开放平台扫码登录,优货通、AI 项目等公司产品无需自建微信对接,凭 clientId + clientSecret 即可获得登录二维码,并通过回调跳回业务系统完成登录。

Base URL:https://yht.szhsy123.cn/auth-api/v1

1在线测试台

扫码成功后会直接跳回该地址并携带一次性 codestate;returnUrl 域名必须配置在客户端白名单中。
点击“生成登录二维码”,这里会显示微信扫码页面。
测试密钥只用于联调,正式项目请注册专属客户端。
过期时间
-
授权链接
-
扫码成功后,浏览器会跳回 returnUrl。业务系统后端凭回调中的一次性 code 与客户端密钥调用 /wechat/token 换领身份,密钥不能出现在前端。
等待操作…

2对接流程

  1. 外部项目前端调用 POST /wechat/qr,传入已配置白名单的 returnUrl,获得 authorizeUrl
  2. 用 iframe 或二维码组件展示 authorizeUrl,用户扫码并在微信中确认。
  3. 扫码确认后,认证平台将浏览器 302 跳回 returnUrl?code=一次性授权码&state=透传参数
  4. 业务后端凭 code + clientId + clientSecret 调用 POST /wechat/token,换领 accessToken 与微信身份(openid/unionid)。
  5. 后续需要校验时调用 POST /wechat/verify
唯一扫码模式:returnUrl 为必填项,域名须在客户端白名单内;不再提供前端轮询或 ticket 换领身份。

3接口文档

接口方法调用方说明
/auth-api/v1/wechat/statusGET任意网关配置状态
/auth-api/v1/wechat/qrPOST外部前端创建登录二维码
/auth-api/v1/wechat/callbackGET微信回调微信授权回调(浏览器跳转)
/auth-api/v1/wechat/tokenPOST外部后端一次性 code 换领身份令牌
/auth-api/v1/wechat/verifyPOST外部后端校验 accessToken
/auth-api/v1/clientsPOST / GET平台管理员注册 / 查看客户端
/auth-api/v1/clients/{clientId}/return-domainsPUT平台管理员更新回调域名白名单
/auth-api/v1/clients/{clientId}/reset-secretPOST平台管理员重置客户端密钥
/auth-api/v1/clients/{clientId}/statusPATCH平台管理员启用 / 停用客户端
POST/auth-api/v1/wechat/qr外部前端调用

请求

说明

returnUrl 必填,域名必须在客户端白名单内,生产环境需 HTTPS;state 可选并会原样透传回业务系统。

响应

POST/auth-api/v1/wechat/token外部后端调用

请求

code 为回调返回的一次性授权码,只能使用一次。

响应

curl 示例

POST/auth-api/v1/wechat/verify外部后端调用

请求

响应

4客户端管理(平台管理员)

先在 公共服务平台管理后台 登录管理员账号,再调用以下接口(请求头带 X-Admin-Token)。clientSecret 只在创建和重置时返回一次。

操作方法示例
注册客户端POST /auth-api/v1/clients {"clientId":"ai-ceo","name":"AI-CEO 项目","allowedReturnDomains":["szhsy123.cn"]}
查看列表GET /auth-api/v1/clients-
更新回调白名单PUT /auth-api/v1/clients/{clientId}/return-domains{"allowedReturnDomains":["szhsy123.cn"]}
重置密钥POST /auth-api/v1/clients/{clientId}/reset-secret-
启用/停用PATCH /auth-api/v1/clients/{clientId}/status{"status":"DISABLED"}

5前端接入示例

6错误码

错误码HTTP说明
CLIENT_NOT_FOUND404客户端不存在
CLIENT_DISABLED403客户端已停用
INVALID_CLIENT_CREDENTIALS401clientSecret 错误
WECHAT_NOT_CONFIGURED503微信凭据未配置
INVALID_RETURN_URL400returnUrl 缺失、不安全或不在白名单
CODE_INVALID400一次性 code 缺失
CALLBACK_CODE_NOT_FOUND404回调 code 不存在或已失效
CALLBACK_CODE_USED409回调 code 已被使用
INVALID_TOKEN401accessToken 无效或过期
RATE_LIMITED429触发限流

7安全说明