收藏
回答

wx.config realAuthUrl invalid signature?

直接说问题,先看公众号配置

附加: js安全域名 例如: 线上是www.aa.com/bb 我配置了多个(js安全域名最多配置5个) www.aa.com/bb和www.aa.com

这里后端返回的nonceStr长度36位,这里我看到别人返回的一般是16位或者32位,(这里我也是有疑问的)

这里 官方说的是

  1. 签名用的 noncestr 和timestamp必须与 wx.config 中的 nonceStr 和timestamp相同。
  2. 签名用的 url 必须是调用 JS 接口页面的完整URL
  3. 出于安全考虑,开发者必须在服务器端实现签名的逻辑。

但是 附录5-常见错误及解决方法 invalid signature

3.确认 url 是页面完整的url(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)://'部分,以及'?'后面的 GET 参数部分,但不包括'#'hash后面的部分。

6. 确保你获取用来签名的 url 是动态获取的,动态页面可参见实例代码中 php 的实现方式。如果是 html 的静态页面在前端通过 ajax 将url传到后台签名,前端需要用 js 获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

这俩点和上面的 第 2 点 和 附录5的第三点 又出现冲突

后端代码:


真机报错:




最后一次编辑于  2022-06-22
回答关注问题邀请回答
收藏

5 个回答

  • 晚起看夕阳
    晚起看夕阳
    2023-05-18

    有解决嘛,测试环境突然出现这个问题,马上就要上线了着急!!!

    另外其实我想明白这个报错到底是什么意思

    realAuthUrl这个数组代表什么意思?

    2023-05-18
    有用 1
    回复
  • 犀利小肥龙
    犀利小肥龙
    03-05

    所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。

    参考:https://developers.weixin.qq.com/community/minihome/doc/0002cc0dca87480b0a9d4f83651c00?page=1https://www.jianshu.com/p/e8eecf1f13c4

    03-05
    有用
    回复
  • 大熊
    大熊
    2023-05-08

    在页面alert(location.href.split('#')[0]) 看看是否一致

    2023-05-08
    有用
    回复 2
    • 大熊
      大熊
      2023-05-08
      你是ios手机吗
      2023-05-08
      回复
    • 大熊
      大熊
      2023-05-08
      排除法测试,  先把url写死测试, 看看有没有问题
      2023-05-08
      回复
  • 鵬
    2022-12-29

    请问解决了么 真的好坑啊

    2022-12-29
    有用
    回复
  • 大大大大大大大
    大大大大大大大
    2022-10-18

    请问解决了吗?我也是对签名那里的url有点蒙

    2022-10-18
    有用
    回复
登录 后发表内容