其实说微信官方说的很简单,当你前端发送code到后台然后调用腾讯的api再返回session_key和openid时,不要直接返回到客户端(小程序)。而是让你自己生成一个随机数作为键,session_key+openid作为值,通过php自己设置一个session,然后保存到memache或redis。
$key = $this->session_3rd(128);
$value = $res['session_key'] . $res['openid'];
session_start();
if (!isset($_SESSION[$key])) {
$_SESSION[$key] = $value; //记得设置失效时间,我就不写了
}
private function session_3rd($len) {
$fp = @fopen('/dev/urandom', 'rb');
$result = '';
if ($fp !== FALSE) {
$result .= @fread($fp, $len);
@fclose($fp);
} else {
trigger_error('Can not open /dev/urandom.');
}
$result = base64_encode($result);
$result = strtr($result, '+/', '-_');
return substr($result, 0, $len);
}
是可以留言的