精华内容
下载资源
问答
  • 问题描述:前端项目,做了自定义分享内容配置,并部署到A域名下,然后公众号后台配置了JS接口安全域名和授权回调页面域名两项都为A,然后测试分享和网页授权都是正常的,其实这个时候并未深刻理解到两者的区别及作用...

    问题描述:前端项目,做了自定义分享内容配置,并部署到A域名下,然后公众号后台配置了JS接口安全域名授权回调页面域名两项都为A,然后测试分享和网页授权都是正常的,其实这个时候并未深刻理解到两者的区别及作用。

    问题出现:由于需求原因,需要将改项目改部署到B域名下,然后习惯性的将授权回调页面域名也改为B,授权回调正常,但分享配置不生效。

    原因剖析:前端配置分享,需要后端获取签名,后端获取签名的前提,是微信判断该项目是在JS接口安全域名下请求的,才会正常返回签名,从而正常配置。一开始以为JS接口安全域名配置的是前端请求后端服务器的域名,其实微信对这个是没有拦截和限制的,只要不跨域就行(测试公众号不限制,生产公众号要配置IP白名单)。微信限制的是和账号有关联有交互的,例如获取code、openid、签名等,都必须在安全验证的情况下。

    总结:授权回调页面域名配置的用途是获取用户信息(需要在微信环境下),JS接口安全域名配置的是调用微信开放JS接口,微信会判断该请求是否是在该域名下发起的(可不在微信环境)。

    展开全文
  • 微信公众号JS安全域名设置配置文件 微信公众号中设置JS安全域名时,会生成一个txt文件: 类似 MP_verify_***.txt 的格式,我们需要将此文件,放到域名访问的根目录下才行。 配置文件 使用 tomcat 运行 war 包,使用...

    微信公众号JS安全域名设置


    微信公众号中设置JS安全域名时,会生成一个txt文件:
    类似 MP_verify_***.txt 的格式,我们需要将此文件,放到域名访问的根目录下才行。

    配置文件

    1. 使用 tomcat 运行 war 包,使用 ROOT 设置
      可将文件MP_verify_***.txt放入$TOMCAT_HOME/webapps/ROOT/ 中
    2. 因为安全等原因,我们使用tomcat时常常会将ROOT删除,此时可以如此设置
      2.1 修改 $TOMCAT_HOME/conf/server.xml ,添加配置:
    <Context docBase="/home/workspace/myproject" path="/" reloadable="true"/>
    

    其中,/home/workspace/myproject是我的程序的根目录,注意path需要为 “/” 。

    2.2 将MP_verify_***.txt放入myproject目录中
    在这里插入图片描述
    3. springboot运行的jar包,可将MP_verify_***.txt放在程序根目录的 src\main\resources\static 下,再打包发布即可,如图
    在这里插入图片描述
    PS:若springboot程序中配置了spring.mvc.static-path-pattern,需要将此项去除,因为此项指定了程序中静态文件的存放路径(或将此项的值改为 “/**”,此为springboot的默认值,但是本人未测试如此修改是否可行)。

    展开全文
  • 微信 分享 js安全域名

    2017-07-13 08:40:46
    如题,微信页面需要分享功能,有很多页面,但是js安全域名只能绑定一个页面,所以有没有什么办法让非安全域名也能实现分享功能
  • 微信公众号开发,设置安全域名遇到如下问题 1、提交时一直提示错误,详细如下: 访问到wechat.*.com/MP_verify_ZYqPYWinPNlTT5AW.txt内容与下载文件不符,请检查文件内容或重新上传原始文件 2、复制该地址,...
  • 这篇博文跟大家分享下如何配置微信公众号网页授权域名和JS接口安全域名配置。

    这篇博文跟大家分享下如何配置微信公众号网页授权域名和JS接口安全域名配置。


    1. 打开微信公众平台 https://mp.weixin.qq.com/

    2. 登陆成功后进入微信公众平台后台管理,在最底部可以看到 开发—》接口权限
      在这里插入图片描述
      我们可以看到正如下图所示有两个非常常用的接口:微信登陆和微信分享。
      在这里插入图片描述
      关于使用分享接口和不使用分享接口的例子如下图所示:
      在这里插入图片描述
      可以看出使用分享接口是会看起来更美观,用户体验更好。

    3. 接下来讲解下这方面的重点配置 网页授权域名和JS接口安全域名配置

    我们在 设置-------》公众号设置 可以看到网页授权域名JS接口安全域名配置
    在这里插入图片描述
    在配置之前先来说下不配置会出现什么错误:

    JS接口安全域名如果不配置或配置不正确,那么会提示 config:invalid signature

    网页授权域名如果不通,那么将无法微信登陆成功。

    1. 如何配置这两部分呢?

    在Spring Boot 中如果配置了拦截器,那么需要配置如下两处地方:

    import com.xxxx.interceptor.MyTokenAuthorityInterceptor;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.stereotype.Component;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
    
    /**
     * @author qing-feng.zhao
     * @description 静态资源处理
     * @date 2019/11/23 10:06
     */
    @Component
    @Configuration
    public class StaticResourceConfig extends WebMvcConfigurationSupport {
        /**
         * 添加自定义拦截器
         */
        private final MyTokenAuthorityInterceptor myTokenAuthorityInterceptor;
        public StaticResourceConfig(MyTokenAuthorityInterceptor myTokenAuthorityInterceptor) {
            this.myTokenAuthorityInterceptor = myTokenAuthorityInterceptor;
        }
    
        @Override
        protected void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(myTokenAuthorityInterceptor)
                    .addPathPatterns("/**")
                    .excludePathPatterns("/swagger-ui.html/**")
                    .excludePathPatterns("/webjars/**")
                    .excludePathPatterns("/v2/**")
                    .excludePathPatterns("/swagger-resources/**")
                    .excludePathPatterns("/static/**")
                    .excludePathPatterns("/actuator/**")
                    .excludePathPatterns("/csrf/**")
                    .excludePathPatterns("/home-page.do")
                    .excludePathPatterns("/toLoginPage.do")
                    .excludePathPatterns("/read-api-page.do")
                    .excludePathPatterns("/csrf/**")
                    .excludePathPatterns("/csrf")
                    .excludePathPatterns("/MP_verify_oO9gqu9Pv8fY06o0.txt")
                    .excludePathPatterns("/")
                    .order(1);
        }
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            //自定义框架资源处理
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
            //Swagger 静态资源处理
            registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
            registry.addResourceHandler("/csrf/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
            registry.addResourceHandler("/MP_verify_oO9gqu9Pv8fY06o0.txt").addResourceLocations("classpath:/MP_verify_oO9gqu9Pv8fY06o0.txt");
        }
    }
    

    如果是纯静态页面,那么我们可以用Jetty .

    之所以推荐使用Jetty 而不是tomcat 是因为Jetty 更加简单,不需要繁琐的配置环境变量,直接java -jar start.jar 方式启动

    Jetty 下载地址: https://www.eclipse.org/jetty/download.html

    完事后我们需要在webapps 目录下创建一个ROOT文件夹,然后将MP_verify_********.txt 放进去。

    这样才可以通过域名:http://xxx.com/MP_verify_********.txt 访问,验证通过视为这个域名可以正常访问。

    当然,Jetty 默认是8080端口,而这里的配置是不支持IP或端口号以及短链域名。
    在这里插入图片描述
    为了解决这个问题,我们可以通过nginx 设置请求转发。

    比如api.xxx.com 域名 80端口映射到这个端口上即可。

    		server {
    			listen       80;
    			server_name  html5.xxx.com;
    			large_client_header_buffers 4 16k;
    			client_max_body_size 300m;
    			client_body_buffer_size 128k;
    			proxy_connect_timeout 600;
    			proxy_read_timeout 600;
    			proxy_send_timeout 600;
    			proxy_buffer_size 64k;
    			proxy_buffers   4 32k;
    			proxy_busy_buffers_size 64k;
    			proxy_temp_file_write_size 64k;
     
    		  location ^~ / {
    		   proxy_redirect off;
    			   proxy_set_header x-real-ip $remote_addr;
    			   proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
    		   proxy_set_header host $http_host;
    			   proxy_pass   http://127.0.0.1:8085/;
    		   }
    		}
    		server {
    			listen       80;
    			server_name  api.xxx.com;
    			large_client_header_buffers 4 16k;
    			client_max_body_size 300m;
    			client_body_buffer_size 128k;
    			proxy_connect_timeout 600;
    			proxy_read_timeout 600;
    			proxy_send_timeout 600;
    			proxy_buffer_size 64k;
    			proxy_buffers   4 32k;
    			proxy_busy_buffers_size 64k;
    			proxy_temp_file_write_size 64k;
     
    		  location ^~ /api/ {
    		   proxy_redirect off;
    			   proxy_set_header x-real-ip $remote_addr;
    			   proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
    		   proxy_set_header host $http_host;
    			   proxy_pass   http://127.0.0.1:8087/api/;
    		   }
    		}
    

    上面是HTML5映射,下面是Restful API 地址。

    如果是请求api.xxx.com 就将http://api.xxx.com:80端口映射到 http://api.xxx.com:8087/api/

    如果是请求html5.xxx.com 就将http://html5.xxx.com:80端口映射到 http://api.xxx.com:8085

    最后按照JS-SDK 进行开发即可

    https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

    本篇完~

    展开全文
  •  图中的URL除了包括协议、域名,还需要具体的接口路径,比如这里就是"/wx/enter"。 Token可以自己随便设置,但是需要在URL中的接口进行验证。@RequestMapping(value = "/enter") public ...

        无论是正式的微信公众号还是测试账号,都需要配置URL和Token,用于验证服务器是否配置正确,如下图。

       

        图中的URL除了包括协议、域名,还需要具体的接口路径,比如这里就是"/wx/enter"。

        Token可以自己随便设置,但是需要在URL中的接口进行验证。

    @RequestMapping(value = "/enter")
    public String wxEnter(HttpServletRequest req){
        //获取签名
        String signature = req.getParameter("signature");
        //获取timestamp
        String timestamp = req.getParameter("timestamp");
        //获取nonce
        String nonce = req.getParameter("nonce");
        //获取echostr,验证成功需要返回这个参数
        String echostr = req.getParameter("echostr");
        //校验是否正确
        if(Util.check(signature, timestamp, nonce)){
    	return echostr;
        }
        return "校验失败";
    }

        签名校验代码:

    public static boolean check(String signature, String timestamp, String nonce) throws Exception{
        // 将 "test", timestamp, nonce 进行字典排序		
        String[] array = new String[] {"test", timestamp, nonce};
        Arrays.sort(array);
        String content = array[0] + array[1] + array[2];	
        MessageDigest md = MessageDigest.getInstance("SHA-1");
        // shal 加密
        byte[] digest = md.digest(content.toString().getBytes());
        //转换为字符串
        String sign = byteToStr(digest);
        // 校验签名
        return sign != null ? sign.equals(signature.toUpperCase()) : false;
    }

        在保存配置的时候,微信服务器会通过GET方式请求所配置的URL,以上代码就是这个验证过程,确定服务器配置正确。

        注意,以上代码不保证完全正确,仅作参考!因为CSDN的原因,上面两端代码重复了。

        JS安全域名在配置的时候可能会出现二级域名,此时只需要配置一级域名就可以,比如:



    展开全文
  • 微信的意思是以后只能分享自己网站中的页面,估计是出于安全考虑吧,毕竟是一个毛片泛滥的时代。 不过微信你再牛逼,我还是有办法分享,解决方案如下;在后台跳转到自己要分享的页面即可 wx...
  • 微信之旅——js安全域名接口

    千次阅读 2016-02-29 09:23:04
    微信公众平台js接口安全域名是什么?这里设置安全域名,目的是为了当发现此公众平台发现诱导分享行为时,可以根据此域名追溯到所有分享出去的链接,以及通过这些链接增加的粉丝。这样,微信就可以牢牢控制了你的微信...
  • 刚接触微信开发,对后台设置的几个域名有点... 也不知道是否有其他用处,现在微信后台(服务号设置3个)2.JS接口安全域名: 主要是基于微信的js开发相关功能,如自定义分享功能,录音,上传视频等。具体参见https://...
  • 看到别人可以通过微信公众号分享jssdk, 分享出去是p.html5.qq.com开头的域名, 请问下这个是如何做到的?
  • 微信公众平台服务号配置JS接口安全域名 一、注意事项: 1、可填写三个域名或路径(例:wx.qq.com或wx.qq.com/mp),需使用字母、数字及“-”的组合,不支持IP地址、端口号及短链域名。 2、填写的域名须通过ICP备案的...
  • 今天在做微信分享功能的时候,在微信公众号后台设置JS接口安全域名,提示请将XXX文件放到web目录,但是文件已经放到了根目录,也可以访问到,找了好半天才想到 我们的PC和移动端是分成了2个项目,两个项目是会相互...
  • 微信在调用jssdk的时候需要配置接口安全域名,需要将微信的文件下载下来上传到服务器并且能直接访问,这里记录一下,nginx配置文件的修改。 location ~* \.(txt)$ { root /data/www/gm_static/mp; } nginx...
  • 微信公众号 JS接口安全域名 配置

    千次阅读 2020-02-18 18:39:58
    填写完域名后配置下载MP_verify_Su8hYDUbEIbVtum1.txt文件,放到域名所在服务器自定义文件夹里,然后配置nginx,在浏览器输入: 域名/MP_verify_Su8hYDUbEIbVtum1.txt 可以访问到此文件 nginx配置: 这里配置文件...
  • 1、将下载的txt文件放入nginx的安装目录,/usr/...这样我们用域名+txt文件在游览器就能访问了,但是还有一个域的问题。 2、修改nginx.cong配置文件中的location标签: 加入(proxy_set_header X-Real-IP $remote_a...
  • js安全接口域名设置刚开始接触,都不知道怎么填写,填写域名之前,先要把MP_verify_cEqtgUIWJZUrr2U5 .txt这个文件放到你域名映射的服务器下(我的域名直接映射到我的本地tomcat8080端口下了,所有我直接把MP_verify...
  • 2.JS接口安全域名:分享到朋友圈(js-sdk)时用上,此接口要求将当前的界面url加密后,才可以分享到朋友圈。采用前后端分离开发时,js-sdk的验证参数通过php接口获得时,会报invalid signature错误。解决方法:前端...
  • 问题:     服务器上装的是wamp,用的是thinkphp5.0.24框架,将下载的MP_verify_lqmW0KlnRj4xOr2N.txt文件放在项目根目录下,结果报错:访问内容与文件不一致 解决办法:     将MP_verify_lqmW0KlnRj4xOr2N.txt...
  • 在微信开发时,需要点击...因为微信的安全做得比较好,我们根据 微信 js sdk写的函数、方法,只有在指定的安全域名下才能被微信唤起。 注意:设置完安全域后,还要能保证此域名下能访问微信提供的txt文件...
  • 微信JS接口安全域名填写ip地址

    万次阅读 2015-09-02 14:58:33
    微信JS接口安全域名填写ip地址时 如果填写http://123.123.123.123/ 通过微信访问时会提示invalid url domain 改成123.123.123.123就可以了
  • 最近做项目,发现按在微信端调起扫一扫时会出现你当前得域名不安全的错误,而且在微信网页授权认证的时候你的当前域名也必须时安全域名,之后才发现要去微信公众号上配置安全域名,但是配置了安全域名之后,发现一直...
  • 配好了js安全域名,调试时仍然报invalid url domain,查看官方文档说是域名绑定不成功。谷歌之后才发现很多人也遇到这个问题。下面给出解决方案:如果调用js的域名是二级域名,而在JS接口安全域名里面没有配置该二级...
  • 这个文件其实就是保证 : 你域名/这个文件 , 例如 域名: baidu.com   文件为:adafssdf.txt baidu.com/adafssdf.txt  可以找到这个文件。 如果出现 系统异常,稍后再试,请注销你微信公众账号,再登录...
  • 接口安全域名就设置完毕啦。 4、 获取 accesstoken Accesstoken 有有效时间限制的,如果过期啦要重新获取,而且请求获取 accesstoken 的接口调用次数也有限制。所以我们必须要把每次 accesstoken 的结果保存...
  • 在配置JS接口安全域名时,出现了这个问题,莫名其妙。.txt文件下载后并没有做任何改动,直接就上传到了服务器项目根目录,但是就是报错(例):“h5.php是世界上最好的语言.com/MP_verify_kSi0PYLSKjDoJSc.txt内容与...
  • 设置JS接口安全域名后,公众号开发者可在该域名下调用微信开放的JS接口。 注意事项: 1) 可填写三个域名,要求是一级或一级以上域名(例:qq.com,或者 www.qq.com ),需使用字母、数字及“-”的组合,不支持...
  • 微信开发 JS接口安全域名修改

    千次阅读 2016-05-13 10:26:59
    JS接口安全域名修改 域名:www.xxx.com 不用带http://

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,356
精华内容 32,942
关键字:

js安全域名