现在遇到一个问题,公司的广告连接跳转,通过小程序内部的页面url跳转到一个HTML5页面,这个页面的后台鉴权的方式是通过网页版本H5接口获取code ,然后通过code再获取AccessToken的机制来获取微信用户openid信息,来实现用户微信授权;H5的接口授权文档在这里:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html 但是这个文档里面没有明确说明不能用于小程序端内页跳转;跳转之后其实还是停留在小程序里面的。目前最新版本的华为 鸿蒙系统是可以支持的,可能是由于鸿蒙系统小程序的页面机制是webview的。然而,IOS苹果手机的小程序, 老版本的鸿蒙4.2 和普通的安卓手机都是不行的,也没有看到官方文档明确说明不能用于小程序。请问这个问题的真相是什么,请官方给一个明确答复。
微信小程序内嵌H5页面无法通过传统网页授权获取code的机制,这是由平台安全策略决定的。核心问题如下:
一、授权机制隔离
二、官方解决方案
必须使用小程序原生授权机制:
wx.login({ success: res => { const code = res.code // 有效期为5分钟 // 将code发送至开发者服务器换取openid } })
参考文档:小程序登录流程Webview使用限制
你能想办法搞定添加业务域名就行,需要你们老板有实力往腾讯的服务器上放校验文件。
你可以把网页授权的api的域名:https://open.weixin.qq.com,添加到你的小程序后台业务域名中就行。不行,就不要搞这种。