invalid signature报错,有解决过的吗?
发布于 6 年前 作者 hzhao 4884 次浏览 来自 官方Issues

2 回复

问题在于ios系统对vue-router的history的支持上,由于Vue的spa特点,尽管你打印出来都是你所要的当前页面url,只要你不刷新页面,ios获取到的url永远是你进入这个项目的第一个url,这样的话你请求签名就会变成动态url不一致导致签名失败

IOS:微信IOS版,每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url就是最初进入页面时的url

Android:微信安卓版,每次切换路由,SPA的url是会变的,发起签名请求的url参数必须是当前页面的url(不是最初进入页面时的)

// vue 中,和data平级beforeRouteEnter (to, from, next) {
  var u = navigator.userAgent;
  var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
  // XXX: 修复iOS版微信HTML5 History兼容性问题
  if (isiOS && to.path !== location.pathname) {
    // 此处不可使用location.replace
    location.assign(to.fullPath)
  } else {
    next()
  }
}
回到顶部