微信网页授权那些事

本文探讨微信网页授权过程中应注意的事项,尤其是code换取的网页授权access_token与JS-SDK中access_token的区别。建议使用Redis缓存JS-SDK的access_token。由于H5页面授权与微信APP授权的openid不一致,但unionid是唯一标识,可以通过unionid进行用户统一管理。详细配置步骤及官方技术文档链接已提供。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jie 2017/9/29

官方技术文档 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842其实已经很清楚了,本文重点说明开发遇到的一些注意事项和tips

微信网页授权分2种:
1) scope=snsapi_base
静默授权,获取用户openid
2) scope=snsapi_userinfo
必须用户同意授权,获取用户基本信息(openid、昵称、头像URL等)

硬性要求:
1) 服务号+微信认证
2) 域名通过ICP备案的验证
3) 服务号的AppID和AppSecret

配置:
1) 微信公众平台 - 公众号设置 - 功能设置 - 【网页授权域名】
下载文件MP_verify_xx.txt并上传至域名根目录下;
注意“授权回调页面域名”只能设置全域名(如www.xx.com,则此域名下的页面均可进行OAuth2.0鉴权,但此时二级域名oo.xx.com却无法进行OAuth2.0鉴权...)
[Tip 1]由于目前只允许设置一个“授权回调页面域名”,考虑到生产和UAT环境的需要,建议UAT环境访问www.xx.com/uat,并配置nginx反向代理将对该域名的请求转发给内网服务器的特定端口,这样UAT代码也可进行OAuth2.0鉴权。

开发:
[Tip 2]获取code请求https://open.weixin.qq.com/connect/oauth2/authorize,注意其参数state(最多128字节)重定向后会随code原样带回,可当作localStorage功能用以避免重定向后关键数据被浏览器清空...

[Tip 3]注意通过code换取的网页授权access_token与JS-SDK(如微信分享功能)中的access_token概念不同!后者建议设Redis过期键缓存。

由于H5页面只能在微信内部浏览器或者委托APP发起微信授权,但是微信网页授权返回的openid和微信APP授权的并不一致,而微信用户的unionid是唯一的(同一个微信开放平台账号下),此时通过unionid机制。
配置:
1) 微信开放平台 - 管理中心 - 公众账号 - 绑定公众号

官方技术文档:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=&lang=zh_CN
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值