session_key

session_key是开心网用户的身份标识代码。 通过session_key,我们可以知道用户的信息,然后调用1.2或2.0接口。

1) 如何获取

用户在开心网平台访问第三方组件的时候,首先会访问第三方组件首页URL(申请组件时填写的地址)。开心网平台会用GET的方式把当前用户session_key传递给第三方组件首页URL。

如果您的组件的地址为:http://www.yourname.com/app.php,那么我会这样的把session_key发送给您http://www.yourname.com/app.php?session_key=xxxxxxx

注意:只有用户在开心网平台访问第三方组件首页时才会传递session_key,如果用户停留在第三方组件某个页面
时间过长,导致session_key过期(有效期为6个小时),那么需要用户重新通过开心网平台访问组件首页才能重新传递新的session_key。
开发者在首页拿到session_key后,需自己临时保存session_key,以保证在组件的其他页面也能获得session_key。

2) 如何验证是开心网发起的

session_key对于调用平台所提供的API非常的重要,只有正确的session_key才能正确的调用API。虽然,验证session_key这一步骤对于组件来说并非必须的一个步骤。但是,我们依然建议您在组件首页接收到session key后进行必要的验证,以确保这次请求是来自开心网所发起的。

在获取session_key的介绍中,我们提到session_key会通过GET的方式发送到您的组件中,在这个过程中,一个叫做“sig”的参数也和session_key一并通过GET方式发送给您的组件了。

将获取的session_key和Secret Key(您在创建组件时开心网提供给您的)用下划线连接,进行MD5加密,验证生成的字符串与获取的sig参数是否一致,如果一致则表示此session_key是开心网发出的。

PHP示例:

<?php
$secret_key =********;//在组件信息里
$localsig = md5($_GET['session_key'].'_'.$secret_key);
if ($localsig == $_GET['sig']) {
		//正确
	}
?>