微信重定向访问到你的回调网址

2024-03-16
来源:网络整理

有一个问题想记录一下,就是微信授权登录后重复回调的问题。

微信授权流程如下:

1、当用户在微信中打开链接A时,微信会携带该代码,访问A中的重定向链接B。(用户的微信客户端-->微信)

链接A如下:

=

&=

&=代码

&=

&=#*

是链接B

2.微信重定向访问您的回调网址(微信-->网站)

?代码=代码&=

CODE 和 都是微信服务器生成的参数。 用户点击同意授权并继续访问,微信服务器将访问您的URI(链接B)。

3.网站收到请求时,会获取到CODE,所以使用CODE来获取。

(网站服务器-->微信)

=

&=

&代码=代码

&=

收到一个和

4. 网站获得金额后,即可向微信请求用户数据。

(网站-->微信)

=

&=

郎=

接收包含用户信息的 json。

问题:

问题就出在第一步。 不知道为什么第二步,点击“继续访问”继续访问后,微信反复访问B链接。

一开始我不知道它会被重复访问。 设计思路是,链接B收到请求后,先取代码并请求和,然后取and并请求,拿到后渲染页面。

代码只能在五分钟内使用一次。

所以一旦代码被重用,接下来的几次你将无法得到任何东西。

我花了很长时间才发现这个bug...

解决方案:

每次收到代码时,请检查它是否已被使用。

如果之前没有使用过,则与其组成一个键值对,即code:,然后将这个对存储在一个变量中。

如果已经使用过,直接从键值对中取出,不再访问微信获取。

完美~

官方文档:

分享