在一个实例中,我通过AJAX将所有Facebook会话数据发送到我们的服务器 服务器需要验证会话是否合法。我在stackoverflow上找到了这个:Verifying a Facebook Connect session
它表示要创建一个字符串,如:
access_token=1290380d9e&expires=92d903&secret=e9cj9kd&session_key=s49i9i3f&uid=12345
然后添加你的app密钥,所以我假设字符串看起来像:
access_token=1290380d9e&expires=92d903&secret=e9cj9kd&session_key=s49i9i3f&uid=12345&app_secrete=23132132
此字符串的md5()
应与会话数据中的sig匹配
但它永远不会这样,所以我只是想知道这是否是一种合法的方式,或者如果我没有做到这一点。
有什么想法吗?
答案 0 :(得分:1)
该技术有效,但您引用的描述有一些值得注意的错误。
首先,应该没有'&'字符串中的字符。我知道它看起来很奇怪,但只是把它们留下来,所以格式就像NAME = VALNAME = VALNAME = VAL。
其次,不要试图只包括一个固定的参数列表,如列出的五个参数。相反,包括除“sig”之外的所有可用参数。否则,只要Facebook添加或重命名任何参数,您的代码就会中断。并确保按字母顺序排列。
生成类似的字符串,你的md5哈希应始终匹配。