微信Web开发之config:invalid signature

Posted rookie-programmer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信Web开发之config:invalid signature相关的知识,希望对你有一定的参考价值。

config:invalid signature可以按以下方法排查

    1. JS接口安全域名设置问题:应该只包含域名,比如https://i.cnblogs.com 的域名是i.cnblogs.com

    2. wx.config配置参数相关的要求
      1. 时间戳(timestamp)值精确到秒,不是毫秒
      2. nonceStr字段名称的‘s‘是大写。
      3. appid 与获取 jsapi_ticket 使用的appid 必须相同
      4. 进行签名(加密)的URL
        1. 对于加密的URL,包括https://或http://和?后面包括的参数,不能包括#之后的内容。
          比如:
          加密的URL是:http://abc.com/a.html?adasd=1#localion
          那么正确的加密URL应该是:http://abc.com/a.html?adasd=1
        2. 前端发送到后端进行sha1加密的url是当前js页面的URL,不是获取验证签名的接口URL
          比如: 
          当前页面URL是   http://abc.com/a.html 
          获取appId、timestamp、nonceStr、signature的URL接口是   http://abc.com/aaa/getSignature.html
          那么进行加密的URL应该是 http://abc.com/a.html 
        3. 后端获取用来加密的URL要动态获取。
    3. 需要缓存access_token和jsapi_ticket,不然可能因为每次获取时刷新了不同的值,导致验证失败。
    4. 用户授权回调之后,页面路径会添加两个参数:code和state
      比如:

      授权后跳转页面为:http://abc.com
      则添加参数后会变成:

      http://abc.com?code=asdasd&state=STATE

      如果直接使用location.href.split(‘#‘)[0]获取当前页面的URL,会把state当成一个查询的参数导致错误
      正确的获取签名URL:encodeURIComponent(location.href.split(‘#‘)[0])
    5. 签名算法出现错误:
      使用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具校验
    6. 服务器ip没有在白名单上
      公众号后台->基本配置->设置IP白名单
    7. 超过了每日的access_token获取上限,token过期后签名失败
    8. 反向代理没有设置正确
      nginx配置反向代理代码:
      proxy_set_header Host $http_host;

以上是关于微信Web开发之config:invalid signature的主要内容,如果未能解决你的问题,请参考以下文章

微信 js-sdk config:invalid signature

微信网页分享 jssdk config:invalid signature 签名错误

vue微信浏览器安卓正常 ios config 报错 “errMsg“:“config:invalid问题

在做微信分享到朋友圈时,手机扫码报config:invalid signature,分享后后正常的问题,是url问题

php微信公众号开发之二级菜单

微信开发之 获取用户地址