Drupal 7 log in with curl

Pozdrav,

Imam problema sa logiranjem na drupal site sa curl-om. Uradio sam to na najmanje 4-5 drugih stranica, ali na ovoj na kojoj trenutno radim stvari jednostavno ne funkcionisu.

Mislim da imam problema sa cookies. Ne znam stvarno. Potrosio sam dva dana na ovo i malo mi fali da podignem bijelu zastavicu i predam se :).

Code:

<?php
    ob_start(); // Initiate the output buffer
    function mymodule_get_csrf_header() {
      $curl_get = curl_init();
      curl_setopt_array($curl_get, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => 'http://will.sx/services/session/token',
      ));
      $csrf_token = curl_exec($curl_get);
      curl_close($curl_get);
      return 'X-CSRF-Token: ' . $csrf_token;
    }
    $username = 'test';
    $password = 'TEST';
    $request_url = 'http://will.sx/rests/user/login';
    $user_data = array(
      'username' => $username,
      'password' => $password,
    );
    $user_data = http_build_query($user_data);

    $curl = curl_init($request_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json')); // Accept JSON response
    curl_setopt($curl, CURLOPT_POST, 1); // Do a regular HTTP POST
    curl_setopt($curl, CURLOPT_POSTFIELDS, $user_data); // Set POST data
    curl_setopt($curl, CURLOPT_HEADER, FALSE);  // Ask to not return Header
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($curl, CURLOPT_FAILONERROR, TRUE);
    curl_setopt($curl, CURLOPT_COOKIESESSION, true);
    curl_setopt($curl, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($curl, CURLOPT_COOKIEJAR, "cookie.txt");

    $response = curl_exec($curl);
    $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    if ($http_code == 200) {
      $logged_user = json_decode($response);
      echo 'logged';
    }
    else {
      $http_message = curl_error($curl);
      die('Unable to connect to Basic CMS Engine! 
                                            Username or password incorrect! 
                                            Please enter valid username and password!');  
    }
    //setcookie(name,value,expire,path,domain,secure)
    setcookie($logged_user->session_name,$logged_user->sessid,time() + 10000,'/');
    ob_end_flush(); // Flush the output from the buffer
    ?>

Znaci kad u scripti hardkodiram username & password koji naravno nisu test, test dobijem poruku ‘‘logged’’ ali kad odem na pocetnu stranicu jednostavno nisam logovan.

Kad printam $logged_user , $resposne il bilo koju drugu varijablu koja se pojavljuje u code-u dobijam uredan output.

Svaka pomoc je dobro dosla.

Poprilicno sam siguran da je do funkcije setcookies.

Kad uradim
$cookies = etcookie($logged_user->session_name,$logged_user->sessid,time() + 10000,’/’);
print_r($cookies);

dobijem kao output:
1

ako odeš na http://will.sx/rests/user/login možeš vidit da je stranica suspendirana

To je trenutno tako. Zaboravio je klijent platiti hosting provider. Site ce biti up za 15-20 min. pa molim te da pogledas tad.

Hvala unaprijed

Ne kuzim se u drupal i to s curlom ali opet otvori link i piše da user anonymous nema pristup!

pise, zato sto stranica nije namjenjena da ju gledas tako kako ti gledas (klikom na link) vec se na stranicu treba poslati request s username-om i passom

A kužim, onda samo spamam u temi :frowning:

Hvala vam svima. Rijesio sam problem tako sto sam izmijenio postojecu login formu. Problem sa CURL-om nisam uspio rijesit. Ne znam sta je bio problem i jednostavno sam bio primoran naci drugo rjesenje.


Copyright © 2022 WM Forum - AboutContact