微信公众平台网页授权两次重定向问题

调用微信授权接口,微信服务器多次请求本地本地服务器接口,前几天做公众号分享功能,然后调用授权接口API 时一直都是两次。 会出现{'errcode':40029,'errmsg':'invalid code, hints: [ req_id: 0407ns44 ]'}这样的错误。

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&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永久定向就能解决。


你可能感兴趣的:(java)