为什么 Facebook 的 Graph API 会为“access_token”、“secret”、“session_key”、“sig”...这么多字段发出 cookie?
以下是 Facebook 向使用 Facebook connect 的网站提供的 cookie。
它会发出一个名为 fbs____
的 cookie,并且可以使用 &
字符进行拆分:(数字已更改...但它们的形式相似)
Array
(
[0] => "access_token=32480239450325|2.39F_lt3098asddASDL__.3600.1287892800-123456789|H9348aKljsakasd
[1] => base_domain=www.example.com
[2] => expires=1287892800
[3] => secret=032480XYZ023489__
[4] => session_key=2.39F_lt3098asddASDL__.3600.1287892800-123456789
[5] => sig=8023948acbd43243
[6] => uid=123456789"
)
32480239450325
是 appID。
我想,如果我们使用应用程序的密钥对 access_token 的第一部分进行 MD5 或 SHA1,那么我们可以验证它是否等于 access_token 的第二部分或最后一部分,并确认它是有效的 access_key 和用户。
那么为什么我们需要 session_key
、secret
和 sig
呢?事实上,session_key
是 access_token
的一部分,那么为什么要重复它......?
The following is what Facebook gives as a cookie to a website that uses Facebook connect.
It issues one cookie with the name fbs____<appID>_____
, and can be splitted using the &
character: (numbers changed... but they are in similar form)
Array
(
[0] => "access_token=32480239450325|2.39F_lt3098asddASDL__.3600.1287892800-123456789|H9348aKljsakasd
[1] => base_domain=www.example.com
[2] => expires=1287892800
[3] => secret=032480XYZ023489__
[4] => session_key=2.39F_lt3098asddASDL__.3600.1287892800-123456789
[5] => sig=8023948acbd43243
[6] => uid=123456789"
)
The 32480239450325
is the appID.
I thought if we MD5 or SHA1 the access_token's 1st part with the uid with our app's secret key, then we can verify that it equals to the access_token's 2nd part or the last part, and confirm that it is a valid access_key and user.
So why do we need session_key
, secret
, and sig
? In fact, the session_key
is part of the access_token
, so why repeat it...?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
支持可能仍在使用旧的 fb_sig 参数的旧应用程序
To support legacy applications that might still be using the old fb_sig parameter