在 OAuth 流中的重定向之前设置的会话变量如何在用户返回后进行比较


How do Session variables set before a redirect in OAuth flow remain to compare after the user returns?

我正在为我正在从事的项目设置各种身份验证方法,谷歌和Facebook使用的通用OAuth 2.0框架似乎非常棒。不过,在阅读Facebook给出的例子时,我偶然发现了一些对我来说似乎很奇怪的东西。

如果你看一下Facebook页面的底部,你可以看到PHP中的一个示例。在他们的过程中,他们首先将一个随机字符串设置为 $_SESSION['state'],然后将用户重定向到 facebook 身份验证页面,然后将用户发送回原始页面,在那里他们将状态字符串与应该存储在会话变量中的内容进行比较。也许我在这里错过了一些东西,但是如果用户离开您的网站,您不会丢失所有会话数据吗?这是如何工作的?即使您离开网站,如何维护您的会话数据?

会话数据将一直保留到您关闭浏览器或从应用注销为止。会话状态可以保存在服务器上,也可以保存在浏览器中的 cookie 中。无论哪种方式,一旦Facebook重定向回您的网站,您就可以使用会话数据。

当用户离开您的网站时,您不会丢失会话数据

因此,在用户从Facebook重定向回我们的网站后,我们会检查state值。