小程序跳转H5的url后 报错了: 无法获取用户身份 登录的微信号未绑定为公众号(wx50775cad5d08d7ad)的网页开发者,无法使用 Oauth 授权登录获取用户身份,请查看文档并完成绑定
调试微信网页授权 使用微信号登录开发者工具后,可以在开发者工具上调试微信网页授权,和微信客户端一样,网页可以获取到当前登录开发者工具的微信账号的信息。 出于以下两点原因,我们要求调试微信网页授权,必须开发者微信号与公众号建立绑定关系 保证开发者身份信息安全,避免被有心人士诱骗扫码登录到开发者工具,在开发者工具上使用开发者的身份访问任意的页面 避免被有心人士利用开发者工具作为自动化工具对任意的公众号网页 “薅羊毛”
你的 小程序使用 <web-view>
组件跳转 H5 页面,而 H5 页面 使用了微信网页授权登录,导致 H5 需要绑定公众号开发者,但你用的是 小程序而不是公众号,所以报错了。
🎯 为什么会出现这个问题?
-
小程序的
<web-view>
组件是嵌入的 H5 页面- 这个 H5 可能是原来给 微信公众号 用的,所以 H5 里用了
wx.login()
或OAuth 授权
。 - 但你现在是 小程序 里打开这个 H5,而 小程序和公众号的授权方式不同。
- 这个 H5 可能是原来给 微信公众号 用的,所以 H5 里用了
-
H5 使用了
OAuth
授权,而小程序内<web-view>
需要额外的设置- 你的 H5 可能是这样的:
wx.login({ success(res) { console.log('微信授权成功', res); } });
- 但是微信 不允许小程序内
<web-view>
直接使用公众号的 OAuth 授权,除非 你的小程序和公众号绑定在一起。
- 你的 H5 可能是这样的:
✅ 解决方案
方案 1(推荐):小程序内不要用公众号 OAuth,改成小程序的 wx.login()
- 你应该让 H5 识别它是小程序环境,并使用小程序的
wx.login()
获取code
。 - 你可以在 H5 里用
wx.miniProgram.getEnv()
判断是否在小程序里:wx.miniProgram.getEnv((res) => { if (res.miniprogram) { // 这里是小程序环境,调用小程序的 wx.login() wx.miniProgram.navigateTo({ url: '/pages/auth/auth' // 跳到小程序的登录页面 }); } else { // 这里是 H5 或公众号环境,正常使用公众号的 wx.login() wx.login({ success(res) { console.log('微信授权成功', res); } }); } });
- 这样的话,在小程序里不会触发公众号 OAuth,而是跳回小程序内做授权。
方案 2:绑定小程序和公众号,让 H5 OAuth 能正常用
如果你 必须使用 H5 的 OAuth 授权,你需要 绑定小程序和公众号:
- 登录 微信公众平台,使用 你的公众号 AppID 登录。
- 进入「开发者中心」
- 在「开发者工具 - web 开发者工具」里绑定你的开发者微信号
- 在「开发 - 公众号设置 - 业务域名」里添加 H5 页面所在的业务域名
- 在「开发 - 小程序管理」里,把你的小程序和公众号关联
- H5 页面用的 OAuth 授权,需要配置「网页授权域名」
这样你的 H5 OAuth 就能正常使用了,但是 还是建议用方案 1,因为微信可能未来会限制这种用法。
💡 总结
✅ 如果你能改 H5 代码,就用 方案 1,让 H5 识别到它在小程序里,不要用 wx.login()
,而是回小程序里做授权。
✅ 如果你不能改 H5 代码,就用 方案 2,把小程序和公众号绑定,让 OAuth 正常工作。
最后选了方案2