Rest 用于登录的Joomla会话

Rest 用于登录的Joomla会话,rest,curl,joomla,session-cookies,Rest,Curl,Joomla,Session Cookies,我有一个Joomla网站。我编写了一个组件,允许用户使用基于REST的服务调用登录。例如: http://abc.com/rest/login/greg/greg 在浏览器上执行此操作时,将使用JAuthentication和 用户以如下方式登录: $mainframe =& JFactory::getApplication('site'); $usersipass['username'] = $name; $usersipass['password'] = $password; $m

我有一个Joomla网站。我编写了一个组件,允许用户使用基于REST的服务调用登录。例如:

http://abc.com/rest/login/greg/greg
在浏览器上执行此操作时,将使用JAuthentication和 用户以如下方式登录:

$mainframe =& JFactory::getApplication('site');
$usersipass['username'] = $name;
$usersipass['password'] = $password;
$mainframe->login($usersipass);
// Get logged in cookie and pass it to the browser
preg_match('/^Set-Cookie: (.*?);/m', $ret, $m);
$cookie=explode('=',$m[1]);
setcookie($cookie[0], $cookie[1]);
但是,如果我在执行URL的同一浏览器中进行检查,这一切都会起作用。要允许从外部代理(如命令行)执行此操作,请执行以下操作:

curl -v http://abc.com/rest/login/greg/greg
显然,这与在相关浏览器中设置正确的cookie有关。我尝试使用stackoverflow问题,允许用户使用外部php curl脚本登录。关于cookies的部分是这样的:

$mainframe =& JFactory::getApplication('site');
$usersipass['username'] = $name;
$usersipass['password'] = $password;
$mainframe->login($usersipass);
// Get logged in cookie and pass it to the browser
preg_match('/^Set-Cookie: (.*?);/m', $ret, $m);
$cookie=explode('=',$m[1]);
setcookie($cookie[0], $cookie[1]);
但是,这不会将用户记录在同一浏览器中。身份验证在所有情况下都有效。我的最终目标是从Meteor这样的javascript框架调用RESTAPI,并让用户登录到同一个浏览器中