调用 jssdk 在ios 上一直报invalid signature 的问题解决

问题描述

用vue开发微信公众号项目过程中发现,由于微信授权重定向url上面带的/#/会导致重定向失败·,所以采用history模式。
在hash模式调用jssdk是ok的,但是在history模式除了初次进入页面调取jssdk成功,其他跳转页面都提示失败,一直报“invalid signature”,并且这个问题只发生在ios,然而在跳转后的页面进行刷新操作后,jssdk调用成功了。

原因:vue-router切换的时候都是操作的浏览器历史记录,真实URL为第一次刚进入时的URL。

每次路由变化时都重新请求下签名,发起签名请求的url参数必须是当前页面的url(注:不是最初进入页面时的)
微信IOS版:SPA的url是不会变的
微信Android版:SPA的url是会变的(Android手机跳转页面好像会自动刷新)

解决方法

在“main.js”页面写入如下代码:

router.beforeEach ((to, from, next) => {
  var u = navigator.userAgent;
  var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
  if (isiOS && to.path !== location.pathname) {
    // 此处不可使用location.replace
    location.assign(to.fullPath)
  } else {
    next()
  }
});
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
config:fail,invalid signature jssdk错误是由于传入的config参数中的签名(signature)无效导致的。要解决这个问题,你需要确保传入正确的appId、timestamp、nonceStr和signature,并且将需要使用的jsApiList也传入config参数中。这样才能正确执行config,并且使用jssdk。可以按照以下步骤进行检查和解决问题: 1. 确保你传入的appId、timestamp、nonceStr和signature是正确的。可以通过重新生成签名来获取正确的值。 2. 确保你将需要使用的jsApiList也传入config参数中。根据你的需求,将需要的jsApi添加到jsApiList数组中。 3. 检查你的代码是否正确调用了config方法,并且传入了正确的参数。 通过按照以上步骤检查和解决问题,你应该能够解决config:fail,invalid signature jssdk错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [微信网页调用分享功能出现config:fail,invalid signature解决,及其开发过程中需要注意的几个地方](https://blog.csdn.net/qq_27681677/article/details/131155148)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [config:invalid signature 解决办法和问题排查详解](https://blog.csdn.net/qq_35713752/article/details/125614712)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值