Skip to content

快速开始 ​

本项目基于 Vue 3、TypeScript、Vite、WeUI 和 weui.js,为微信服务号提供网页授权回调中转。它接收微信返回的 code/state,再返回业务网页或小程序,不负责换取 access_token,也不创建业务登录会话。

本地运行 ​

准备 Node.js 22.12+、pnpm 10.33.0,在项目根目录执行:

sh
pnpm install --frozen-lockfile
pnpm dev

根目录创建 .env.development.local,生产构建使用 .env.production.local:

dotenv
VITE_AUTH_CALLBACK_ORIGIN=https://webauth.wx.ax3672.cn
VITE_ALLOWED_WEB_ORIGINS=
VITE_ALLOWED_MINI_PATHS=

两个允许列表为空时不额外限制目标;需要限制时用英文逗号分隔精确的 HTTPS origin 或小程序页面路径。变量在构建时注入,修改后需要重新构建。不要将 AppSecret 或上传管理员密钥放入 VITE_ 变量。

VITE_AUTH_CALLBACK_ORIGIN 用于构造授权链接,调用方仍需使用正确域名和服务号 AppID。详细约束见授权接入协议。

页面入口 ​

路径用途
/项目说明及校验文件上传入口
/callback/web?scene=1&origin=...微信内网页回调,返回原网站
/callback/mini?scene=2&minipath=...小程序 web-view 回调,返回原生页面
/admin/verification管理员上传业务域名校验文件

回调由微信追加 code 和 state,授权期间仅显示 loading。上传页支持 secret 查询参数自动填充,读取后清除地址栏参数;具体使用及密钥管理见上传服务。

构建与部署 ​

sh
pnpm test
pnpm build

三者独立更新。发布前端不会启动后端,也不会更新文档站。

代码结构 ​

  • src/App.vue:默认首页及页面选择。
  • src/auth/entry.ts:入口解析与回调分流。
  • src/auth/protocol.ts:授权链接构造及参数验证。
  • src/pages/VerificationUpload.vue:文件上传管理页面。
  • server/verification-upload.mjs:管理员认证及 shared 文件写入。
  • scripts/:SSH 发布、回滚和共享验证目录维护。
  • docs/:VitePress 文档源文件,修改 Markdown 即可更新内容。

微信服务号网页授权 · 接入与部署文档
皖ICP备2021000025号