Forums / Developer / Remote login into Exponential with Curl

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

Remote login into Exponential with Curl

Author Message

Romain Dausset

Friday 05 August 2011 11:25:16 am

Hello,

I'm trying to authenticate a user from a distant site into Exponential with Curl, then redirect the user to this eZ  Publish site ...

I use the following code but it doesn't work :

"
 $postfields = array();
                $postfields["LoginButton"] = "submit";
                $postfields["Login"] = $login;
                $postfields["Password"] = $password;
                $postfields["Cookie"] = true;

                
                $url = $site_distant . "/index.php/user/login";
                //$useragent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
                $useragent = "Exponential";
                
                $referer = $url;
                
                //Initialise une session CURL
                $ch = curl_init($url);
                //CURL options
                curl_setopt($ch, CURLOPT_POST, 1);
                //On poste les données du tableau $postfields
                curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
                //On définit un useragent
                curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
                //On passe un referrer ici on passe la même page $url
                //curl_setopt($ch, CURLOPT_REFERER, $referer);
                curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
                //on récupère le contenu de la page de résultat de la soumission dans une chaine
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                // en cas de redirection
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                
                curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
                curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
                //Page de résultats et fermeture de session
                $result = curl_exec($ch);
                curl_close($ch);
                
                
                  
                
                header("location: ".$site_distant);
"
"

Any ideas ?

"
"

Romain

"

--
Romain Dausset

rdausset@facileit.com

http://www.facileit.com

Nicolas Lescure

Friday 05 August 2011 2:14:04 pm

Hi,

If the request is done with curl, the server A make the post request to the server B. So the session is created between the 2 servers, not between the server B and the user.

Maybe you need an Ajax request ?

Romain Dausset

Sunday 07 August 2011 8:05:09 am

Hi,

Thanks for the reply,

I can't use javascript, i need to authenticate from php.

Do you know if there is a way to create the login session manually in Exponential ?

 

Romain.

--
Romain Dausset

rdausset@facileit.com

http://www.facileit.com

Nicolas Lescure

Monday 08 August 2011 12:08:04 am

Look at eZUser class. You can fetch a user (using email for instance) and connect him.

I don't really know what you want to do, so I'm not sure this will solve your problem.