1c48fbdeaf
- Added WeChat Official Account configuration options to .env.example and config.go for OAuth2 integration. - Updated main.go to initialize WeChat OAuth handler and register routes for handling OAuth requests. - Enhanced documentation to include references for WeChat Official Account functionality. - Updated route registration to accommodate the new OAuth handler for improved API structure.
1.8 KiB
1.8 KiB
微信公众号:code 换取 openid/用户信息
本接口用于微信公众号网页授权(OAuth2):前端拿到微信回调的 code 后,调用后端换取 openid,并可选获取用户信息(昵称/头像/unionid 等)。
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx65d83a301fc84068&redirect_uri=https%3A%2F%2Fwww.baidu.com&response_type=code&scope=&state=1#wechat_redirect
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx65d83a301fc84068&redirect_uri=https%3A%2F%2Fwww.baidu.com&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
配置
在 .env 中配置(示例见:.env.example):
WECHAT_OA_APP_IDWECHAT_OA_APP_SECRETWECHAT_OA_TIMEOUT_SECONDS(可选)
接口
POST /api/v1/wechat/official/oauth/code2user
说明:
- 不需要登录(无需 Bearer Token),因为该
code本身来自微信网页授权流程。
请求体:
{
"code": "微信回调参数 code",
"with_userinfo": true
}
with_userinfo可选,默认true。- 若网页授权 scope 仅为
snsapi_base,通常只能拿到openid,获取userinfo可能失败(接口会返回userinfo_error提示)。
curl 示例:
curl -X POST 'http://127.0.0.1:8080/api/v1/wechat/official/oauth/code2user' \
-H 'Content-Type: application/json' \
-d '{"code":"YOUR_CODE","with_userinfo":true}'
成功响应示例(节选):
{
"code": 200,
"message": "success",
"data": {
"openid": "oXXXX",
"unionid": "oXXXX",
"scope": "snsapi_userinfo",
"expires_in": 7200,
"userinfo": {
"openid": "oXXXX",
"nickname": "昵称",
"headimgurl": "https://...",
"sex": 1,
"province": "Guangdong",
"city": "Shenzhen",
"country": "CN",
"unionid": "oXXXX"
}
}
}