微信授权登录返回code无效,签名不一致

在项目中,微信授权登录偶尔出现code无效,签名不一致的返回提示,但是就是偶然性
在这里插入图片描述
原因:没有调用wx.login()就获取用户的encryptedData、signature等信息
先看下官方的登录流程
在这里插入图片描述
很多开发者会把 logingetUserInfo 捆绑调用当成登录使用,其实 login 已经可以完成登录,getUserInfo 只是获取额外的用户信息(昵称、头像)。

在项目中,我进行授权登录除了wx.login()返回的code,还需要encryptedData、signature等参数传给后台。获取这些参数有两种方式,一种是点击按钮(open-type='getUserInfo')获取;另一种是 wx.getUserInfo获取;对比下两种方式获取到的数据,个人信息返回是相同一致的,encryptedData、signature等参数不一样。(第一种方式获取是在wx.login前获取,wx.getUserInfo是在wx.login后获取)会发现数据有点不一致。
在这里插入图片描述
由于一开始的设计缺陷和实例代码导致的(wx.getUserInfo 必须通过 wx.login 在后台生成 session_key后才能调用),所以调用 wx.login 获取 code,然后从微信后端换取到 session_key,用于解密 getUserInfo返回的敏感数据,不然会可能导致session_key和服务器存储的session_key不一致,官方提示报错返回
解决方式 :就是 wx.login 获取 code后,再用wx.getUserInfo获取encryptedData、signature等参数(顺序很重要

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
uniapp微信登录时出现code无效的问题可能有几个原因。首先,可能是由于前后端在获取code和使用code换取openid的过程中出现了错误。请确保在登录时正确获取到了code并将其传递给后端进行处理。另外,还需要确认后端代码中是否正确使用了code来获取openid。可参考官方文档中提供的示例代码来确保代码的正确性。 此外,还有可能是由于APPID配置的问题导致code无效。请检查你的项目中的project.config.json文件和manifest.json文件中的APPID是否与微信小程序管理平台上的APPID一致[2]。 最后,还有一种可能是微信小程序管理平台出现了异常,导致code无效。你可以尝试在微信小程序管理平台上重新生成新的APPID,并更新到项目配置中,然后再进行测试。 希望以上方法能够帮助你解决uniapp微信登录code无效的问题。如果仍然存在问题,建议你查阅uniapp官方文档或寻求技术支持来获取更详细的解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Uniapp使用微信登录,获取的code been used或者invalid code错误解决方案](https://blog.csdn.net/GotYoung/article/details/128995204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [uniapp开发微信小程序登录获取openid并解决code无效问题:invalid code](https://blog.csdn.net/weixin_45308405/article/details/128868377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [微信APIV3 JAVA SDK集成(JSAPI支付、商家转账到零钱、订单退款、多商户配置)超简单、新鲜,附源码](https://download.csdn.net/download/weixin_70946184/88269689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值