调用微信授权接口,微信服务器多次请求本地本地服务器接口,前几天做公众号分享功能,然后调用授权接口API 时一直都是两次。
https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=xxx&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
分享的链接在用户进行点击时,会需要微信的授权验证,这时就要访问上面这个接口获取用户的openId,但是每次用户点击分享链接时,后台记录都是请求了两次授权,说明微信服务器访问了本地服务器两次,但是微信接口文档中并没有说明这一点,真是有些坑,最后找到一个方法解决,添加一个参数就OK
connect_redirect=1
https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=xxx&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect
网上很多文章说,微信服务器发起了2次“相同”的请求,第一次请求被其终止掉了。发现只要是302定向到接口的就会发起所谓的两次“相同”的请求,就会产生“40029”错误。302是一种不稳定的跳转,可能产生网页劫持,微信应该就是因为这个所以做了两次请求。用301永久定向就能解决。