微信登录服务
基于 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": {...} }