和小程序不同,小程序可以通过wx.login直接获取code,使用button[open-type=getUserInfo]回调中的解密向量来获取用户信息。H5网页没有相关接口,微信给出了oauth2解决方案:
在H5访问下面的地址,用户授权后页面会重定向到redirect_uri指定的地址,并带上code参数
const oauth2_authorize = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={redirect_uri}&response_type=code&scope=snsapi_userinfo#wechat_redirect'
其中appid是公众号应用id
有了code就可以去后台换取用户信息了。
注意点
- 这个url不是直接就可以调用的,需要公众号后台配置h5 oauth域名,设置域名前需要先下载校验文件txt证书放到项目根目录下(next.js是/public目录),然后保存域名设置,h5才可以访问authorize链接。