service online

WeChat Login Relay

微信扫码登录中转站。统一承接微信开放平台网站应用的授权回调,并把登录凭证安全分发回各业务前端。

Endpoints

  • GET
    /oauth/wechat/start
    入口,生成 state,跳转微信二维码
    caller: browser
  • GET
    /wechat/callback
    授权回调,签发 ticket,跳回业务站点
    caller: WeChat
  • POST
    /api/public/oauth/wechat/exchange
    ticket + client_secret 换取用户信息(一次性)
    caller: business backend
  • GET
    /healthz
    健康检查
    caller: monitor

How it works

a.com  ─click──►  b.com /oauth/wechat/start?client=a&return_path=/dashboard
                   │
                   │  state ⇒ KV  {client, return_path, exp 5m}
                   ▼
              open.weixin.qq.com/connect/qrconnect (scope=snsapi_login)
                   │
                   ▼
       b.com /wechat/callback?code=…&state=…
                   │
                   │  code ⇒ openid/unionid/userinfo
                   │  ticket ⇒ KV  {client, user, exp 2m, used:false}
                   ▼
       a.com /login/wechat-done?ticket=…&return_path=/dashboard
                   │
                   │  POST b.com/api/public/oauth/wechat/exchange
                   │       { ticket, client, client_secret }
                   ▼
       a.com BFF set-cookie session  ──►  302 /dashboard

Configuration

  • • 微信开放平台「授权回调域」填写本服务部署的域名(例如 b.com)。
  • • 业务站点 a.com / c.com / d.com 不需要在微信后台配置。
  • • 通过环境变量 CLIENTS_JSON 注册业务站点白名单。
  • • 详见仓库根目录 README.md