Facebook 的服务器端登录过程提到服务器应该在向 Facebook 发出请求期间提供一个“状态”变量。它就像一个 CSRF 令牌,Facebook 将在其中传递回登录回调页面以供我们的服务器验证。
但是我不确定为什么这是必要的。如果我们确实收到了伪造的登录请求,我们仍然需要使用?code=
登录请求从 Facebook 获取 access_token。虚假请求将没有正确的code
,因此无法正常工作。
此外,用户可以通过Facebook App的链接访问我们的服务器。Facebook 会自动?code=
向链接添加一个参数,以便我们的服务器可以/必须自动登录用户。如果我们要使用code
这个推荐提供的,我们无论如何都没有state
参数可以验证,Facebook 似乎也不关心它。
是state
可选的吗?它真的提供额外的安全性吗?