检索维护浏览器会话的JSON


Retrieve JSON maintaining Browser Session

我有一个用RubyonRails完成的网站,它处理用户身份验证。现在,我在同一个站点的子文件夹下有一个PHP应用程序,它检索RoR提供的指定用户角色的JSON。

现在,当我尝试从PHP中检索JSON时,即使用户登录,它也总是以"Guest"的身份检索(我相信这是因为浏览器会话没有维护(。我用来检索JSON的代码是

$json_url = 'https://mysite.com.com/usertype';
$json_string = '[usertype]';
// Initializing curl
$ch = curl_init( $json_url );
// Configuring curl options
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
CURLOPT_POSTFIELDS => $json_string
);
// Setting curl options
curl_setopt_array( $ch, $options );
// Getting results
$result =  curl_exec($ch); // Getting jSON result string

现在有人可以帮助我在哪里检索维护会话的JSON????

RoR将设置一个身份验证cookie。因此,第一步是找出cookie名称。默认名称为"_myprojectname_session",但它可以在config/initializers/session_store.rb中更改(请参阅从Rails中的任何位置访问"会话密钥"cookie名称(。

找到cookie名称的一个简单方法是在浏览器中查看它(例如,使用此chrome扩展:http://code.google.com/p/editthiscookie/)。

一旦您找到cookie名称(例如"_myapp_session"(,您需要将会话cookie从PHP请求复制到CURL选项,如下所示:

$options = array(
CURLOPT_COOKIE => "_myapp_session=" . $_COOKIE['_myapp_session'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
CURLOPT_POSTFIELDS => $json_string
);