Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从Facebook Connect验证会话是否有效_Php_Javascript_Html_Facebook - Fatal编程技术网

Php 从Facebook Connect验证会话是否有效

Php 从Facebook Connect验证会话是否有效,php,javascript,html,facebook,Php,Javascript,Html,Facebook,在一个例子中,我通过AJAX将所有Facebook会话数据发送到我们的服务器。 服务器需要验证会话是否合法。我在stackoverflow上找到了这个: 它说要创建一个字符串,如下所示: access_token=1290380d9e&expires=92d903&secret=e9cj9kd&session_key=s49i9i3f&uid=12345 然后添加应用程序密钥,因此我假设字符串如下所示: access_token=1290380d9e&e

在一个例子中,我通过AJAX将所有Facebook会话数据发送到我们的服务器。
服务器需要验证会话是否合法。我在stackoverflow上找到了这个:

它说要创建一个字符串,如下所示:

access_token=1290380d9e&expires=92d903&secret=e9cj9kd&session_key=s49i9i3f&uid=12345
然后添加应用程序密钥,因此我假设字符串如下所示:

access_token=1290380d9e&expires=92d903&secret=e9cj9kd&session_key=s49i9i3f&uid=12345&app_secrete=23132132
此字符串的
md5()
应与会话数据中的sig匹配。
然而,它从来没有这样做过,所以我只是想知道这是否是一种合法的做法,或者我是否偏离了目标


有什么想法吗?

这项技术是有效的,但您引用的描述有一些明显的错误

首先,字符串中不应有“&”字符。我知道这样看起来很奇怪,但是把它们放在外面,所以格式是NAME=VALNAME=VALNAME=VAL

其次,不要试图只包含一个固定的参数列表,如所列的五个参数。而是包括除“sig”之外的所有可用参数。否则,每当Facebook添加或重命名任何参数时,您的代码就会中断。并确保按字母顺序排列


生成这样的字符串,您的md5哈希值应该始终匹配。

我根据您的建议尝试了几个示例,但sig代码仍然不匹配。见下文(我之所以将数据命名是因为明显的原因,所以MD5不匹配)
access\u-token=sdajdslkjald&expires=213123124214&secret=324324&session\u-key=asdasdsadda&uid=213213&app\u-secret=asdasd33242-md5=8158f7be460c5644ff4d669b5509c7c2
access\u-token=sdajdslkjaldexpires=2131224secret=324324-session\u-key=asdasdsaddauid=213213app\u-secret=asdasd33242-md5=0095b84394bbad230cd065f034948f9e
access_token=sdajdslkjald&app_secret=asdasd33242&expires=21312124214&secret=324324&session_key=asdasdsadda&uid=2131213 md5=c1fd895572193aceb4fd5cfa06164fe2
access_token=sdajdslkjaldap&expires=2131242;=2131242; session mdu key=21324;58c4b9fb12835fe3981e3cf4373940a3
real sig=84a896f966d87412034a2ef7a50dd41d
当您将app_secret添加到末尾时,只需添加值,而不是“app_secret=”部分。很抱歉,在您最初的示例中,我没有注意到这一点。并确保包含所有参数。至少在某些情况下,我也会看到“base_domain”参数,因此如果存在,也需要包括该参数。