用Hbuilder打包成apk包安装到手机是可以正常微信授权登录的,如果是通过运行到手机模拟器则显示授权码无效,不知道什么原因,通过uni.login方式
uni.login({
"provider": "weixin",
"onlyAuthorize": true, // 微信登录仅请求授权认证
success: function(event){
const {code} = event
//客户端成功获取授权临时票据(code),向业务服务器发起登录请求。
uni.request({
url: 'https://www.example.com/loginByWeixin', //仅为示例,并非真实接口地址。
data: {
code: event.code
},
success: (res) => {
//获得token完成登录
uni.setStorageSync('token',res.token)
}
});
},
fail: function (err) {
// 登录授权失败
// err.code是错误码
}
})
运行到手机就提示40029,感觉授权码被消费过似的。但是打包成apk安装到手机就没有任何问题,说明后端、前端配置没有问题
已解决
真机模式分为标准和自定义基座,标准模式真机运行时用的Dcloud的证书,所以微信授权会有问题,先打包一个自定义基座,运行时选择自定义基座即可解决
Zingsun (作者)
我试试自定义基座模式,因为真机模式分为标准和自定义,标准的话用的Dcloud的证书及签名,可能有问题。原来登录是把开放平台id和secret给前端,获取用户信息(onlyAuthorize设置成false),这样不是不安全么,所以改成true用授权码模式,真机测试用标准模式就会出现40029,我用自定义基座试一下
2025-03-13 12:08