Ошибка 403 при аутентификации при запросе к REST-серверу

Главные вкладки

Аватар пользователя roman-yrv roman-yrv 13 апреля 2015 в 0:34

Добрый день.

Сейчас отлаживаю php-скрипт, который бы обращался к REST-серверу на drupal-сайте.

Вот функция, которая логинится на сервер и возвращает пару "имя сессии - ID сессии"

    function test_login($username, $password)
    {
        if (isset($_COOKIE['drupal_session_name']) && isset($_COOKIE['drupal_session_id']))
        {
            return $_COOKIE['drupal_session_name'].' = '.$_COOKIE['drupal_session_id'];
        }
        else
        {
           
            $u_data = array(
                'username' => $username,
                'password' => $password,
            );
           
           
            $user_login_data = array(
                'http' => array(
                    'header' => "Content-Type: application/json",
                    'method' => 'POST',
                    'content' => json_encode($u_data)
                )
            );
           
            $context = stream_context_create($user_login_data);
   
            $res = file_get_contents('http://dexam/rtest/user/login', false, $context);
            if ( $res!== FALSE )
            {
                $result = json_decode($res);
                setcookie('drupal_session_name', $result->session_name);
                setcookie('drupal_session_id', $result->sessid);
               
                return ''.$result->session_name.'='.$result->sessid.'';
            }
            else
                return false;
           
        };
    }

А вот непосредственно код программы, которая должна создавать ноду с использованием Session Authentification

$node_type = 'article';
$node_title = 'Узел создан '.date('c');
$node_body = 'Содержимое ewwer werr нового узла !!!!';
$node_format = 'filtered_html';

$node_create_data = array(
    'type' => $node_type,
    'title' => $node_title,
    'body' => array(
        'und' => array(
            '0' => array(
                'value' => $node_body,
                'format' => $node_format,
            )
        )
    )
);
     
$sess = test_login('admin', '123456');

$context_data = array(
    'http' => array(
        'header' => "content-type: application/json".PHP_EOL.
                    "cookie: ".$sess.PHP_EOL,
        'method' => 'POST',
        'content' => json_encode($node_create_data),
    )
);

$context = stream_context_create($context_data);
$res = file_get_contents('http://dexam/rtest/node', false, $context);

И почему-то возвращается следующее:
HTTP request failed! HTTP/1.0 403 : Access denied for user anonymous

Объясните, пожалуйста, что я делаю не так ...

Заранее благодарен.