...

REST API Authorization

Тема в разделе "Разработчикам", создана пользователем bfl, 3 авг 2020.

  1. bfl

    bfl New Member

    Добрый день,

    Изучаю возможность интеграции ELMA с веб-порталом. Пытаюсь произвести подключение с помощью PHP cURL для передачи файла, но застрял на авторизации. Может быть есть у кого-то рабочий пример авторизации с помощью PHP cURL или подсказка, что сделано не так? Пример скрипта ниже:

    $text = "test";
    $text = utf8_encode($text);
    $sha1 = sha1($text, TRUE);
    $encoded = base64_encode($sha1);
    $encoded = json_encode($encoded);

    $authCurl = curl_init();
    curl_setopt_array($authCurl, array(
    CURLOPT_URL => "http://bpm-demo.elma-bpm.ru/API/REST/Authorization/LoginWith?username=test",
    CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    // "ApplicationToken: " . $appToken,
    "Content-Length: " . strlen($encoded)
    ),
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => $encoded
    ));

    $authResponse = curl_exec($authCurl);
    curl_close($authCurl);

    Ответ получаю такой: {"InnerException":null,"Message":"Ошибка авторизации","StatusCode":401}
     
  2. pushkarev

    pushkarev Active Member

    Примерно вот так должно работать:
    PHP:
    $curl curl_init();

    curl_setopt_array($curl, array(
      
    CURLOPT_URL => "http://{Адрес ELMA}/API/REST/Authorization/LoginWith?username=admin",
      
    CURLOPT_RETURNTRANSFER => true,
      
    CURLOPT_ENCODING => "",
      
    CURLOPT_MAXREDIRS => 10,
      
    CURLOPT_TIMEOUT => 0,
      
    CURLOPT_FOLLOWLOCATION => true,
      
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      
    CURLOPT_CUSTOMREQUEST => "POST",
      
    CURLOPT_POSTFIELDS =>"\"password\"",
      
    CURLOPT_HTTPHEADER => array(
        
    "ApplicationToken: {Токен приложения}",
        
    "Content-Type: application/json; charset=utf-8",
        
    "webdata-version: 2.0",
      ),
    ));

    $response curl_exec($curl);

    curl_close($curl);
    Обращаю внимание, что пароль нужно передавать с кавычками.
    В ответ должны получить токен авторизации и использовать его в последующих запросах.
     
    1 это нравится
  3. bfl

    bfl New Member

    Алексей, в очередной раз снимаю перед Вами шляпу. Благодарю, works like a charm!
     

Поделиться: