微信登录服务

基于 Koa + TypeScript 实现的微信网页授权登录 · 支持作为 SSO 中转站回传 openid 给 A 网站

本站自身登录

登录态保存在本站 session,跳回 /user

SSO 中转流程(模拟 A 网站)

A 网站带 redirect_uri 跳到本站,授权完成后用 HMAC 签名把 openid 回传给 A 网站

体验 A→本站→A 完整流程

A 网站接入说明

1. A 网站生成 state,跳转到:
   http://wx.xyxhsc.com/wechat/login?redirect_uri=A网站回调地址&state=xxx

2. 本站完成微信授权后回跳:
   {redirect_uri}?payload=xxx&sign=xxx&state=xxx

3. A 网站验签(持有 SSO_REDIRECT_SECRET):
   expected = HMAC_SHA256(secret, payload)
   if (expected === sign) {
     data = JSON.parse(base64url_decode(payload))
     // data.openid / data.unionid / data.nickname / data.avatar / data.loginAt
   }

或调用本站在线验签接口:
   POST /wechat/verify
   body: { "payload": "xxx", "sign": "xxx" }
   resp: { "valid": true, "data": {...} }