Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> CURL i Basic Auth
Gaths
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.04.2016

Ostrzeżenie: (0%)
-----


Witam, chce zalogować się za pomocą php na Serwer OSCam, po wpisaniu adresu w przeglądarce wyskakuje mi owe okno:
(IMG:https://s24.postimg.org/pfyu4a9s1/Bez.png)

Wujek google powiedział mi że to Basic Auth czy jakoś tak, więc znalazłem sposób na zalogowanie się przy pomocy prostego Get Request poprzez wpisanie w pasku adresowym przeglądarki http://login:password@host i to działa, nie wyskakuje mi okienko logowania wchodzę na serwer . Zatem prosta sprawa
Kod
<?php
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'http://login:password@host');
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    $output=curl_exec($ch);
    curl_close($ch);
    echo $output;
?>


Niestety nie zadziałało, serwer odpowiedział "Access denied." nie wiem o co chodzi, testowałem chyba wszystkie możliwe zapytania za pomocą CURL które znalazłem w google, takie i tym podobne:
Kod
<?php
    $login = 'login';
    $password = 'password';
    $url = 'host';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
    $result = curl_exec($ch);
    curl_close($ch);  
    echo($result);
?>


Nie wiedziałem co robię źle więc napisałem sobie prosty skrypt, aby sprawdzić czy w tym przypadku zadziała:
Kod
<?php

if($_SERVER['PHP_AUTH_USER'] !== 'root'  ||  $_SERVER['PHP_AUTH_PW'] !== 'root')
{
    header("WWW-Authenticate: Basic realm=\"thetutlage\"");
    header("HTTP\ 1.0 401 Unauthorized");
    echo  "error";
    exit;
}

?>

<html>
<head></head>
<body> ok </body>
</html>


I problem jest następujący, bo przy autoryzacji z testowym skryptem CURL dział i serwer daje odpowiedz "ok".
Czy ktos mi może pomuc zalogować się przez php do tego SOCam'a o bo mi się już wyczerpały pomysły
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Hm, no to ciężko zdiagnozować to "na odległość". Co curl (ten z cli i z --verbose) wypluwa? Czy login/hasło w konfiguracji webif na oscam nie ma jakiś dziwnych znaków?

Ten post edytował redeemer 16.04.2016, 12:03:37
Go to the top of the page
+Quote Post
Gaths
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.04.2016

Ostrzeżenie: (0%)
-----


Cytat(redeemer @ 16.04.2016, 13:03:18 ) *
Co curl (ten z cli i z --verbose) wypluwa?

Nie za bardzo rozumiem (IMG:style_emoticons/default/questionmark.gif)


Cytat(redeemer @ 16.04.2016, 13:03:18 ) *
Czy login/hasło w konfiguracji webif na oscam nie ma jakiś dziwnych znaków?


Nie, nie ma znaków specjalnych
Go to the top of the page
+Quote Post
redeemer
post
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(Gaths @ 16.04.2016, 13:06:54 ) *
Nie za bardzo rozumiem (IMG:style_emoticons/default/questionmark.gif)

Kod
curl --verbose --digest -u <user>:<password> "http://user:password@myserver.dyndns.org:12345/oscamapi.html?part=status"
To jest zwykle polecenie, które wklepujesz w terminal (linux/osx/bsd/etc, na windowsie nie wiem jak z curlem). Po wpisaniu dostaniesz zwrotke i curl wyświetli dokładnie co się dzieje (flaga --verbose).

  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_URL, 'http://'.$login.':'.$password.'@HOST/oscamapi.html?part=status');
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  4. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
  5. curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
  6. $output=curl_exec($ch);
  7. curl_close($ch);
  8. echo $output;
A takie coś? (ewentualnie można jeszcze sprawdzić CURLOPT_URL bez login i pass)

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 10:51