问题描述:前端项目,做了自定义分享内容配置,并部署到A域名下,然后公众号后台配置了JS接口安全域名和授权回调页面域名两项都为A,然后测试分享和网页授权都是正常的,其实这个时候并未深刻理解到两者的区别及作用。
问题出现:由于需求原因,需要将改项目改部署到B域名下,然后习惯性的将授权回调页面域名也改为B,授权回调正常,但分享配置不生效。
原因剖析:前端配置分享,需要后端获取签名,后端获取签名的前提,是微信判断该项目是在JS接口安全域名下请求的,才会正常返回签名,从而正常配置。一开始以为JS接口安全域名配置的是前端请求后端服务器的域名,其实微信对这个是没有拦截和限制的,只要不跨域就行(测试公众号不限制,生产公众号要配置IP白名单)。微信限制的是和账号有关联有交互的,例如获取code、openid、签名等,都必须在安全验证的情况下。
总结:授权回调页面域名配置的用途是获取用户信息(需要在微信环境下),JS接口安全域名配置的是调用微信开放JS接口,微信会判断该请求是否是在该域名下发起的(可不在微信环境)。