2010-10-19 10 views
7

Pracuję nad projektem, który wymaga, żebym POST niektóre dane do adresu URL, który wymaga nazwy użytkownika i hasła dostępu. Jak zbudować adres URL, aby automatycznie logował się do systemu?POST na adres URL chroniony hasłem?

$.ajax({ 
    url: "https://xxxxxxx", 
    type: "POST", 
    data: "___PUT_BODY___="+file+"&file="+time, 
}) 
+1

Czy korzysta z uwierzytelniania HTTP Basic lub niestandardowego i opartego na HTML? – lonesomeday

Odpowiedz

6

Jeśli strona wykorzystuje „Basic” uwierzytelnianie HTTP (rodzaj gdzie przeglądarka otwiera małe okienko dialogowe z prośbą o podanie nazwy użytkownika i hasła), można po prostu zrobić:

https://username:[email protected]/ 

Jeśli strona ma formularz logowania osadzony na stronie gdzieś, a następnie dane logowania nie wchodzą w adres URL. Będziesz musiał zasymulować przesłanie tego formularza (generując podobne żądanie AJAX specjalnie do logowania).

+0

Zgadzam się z głosami, ale moje 2 centy to to, że używam niestandardowych blokad dla moich bezpiecznych stron i używam unikalnych tokenów, aby zapewnić wymagany dostęp. Tak więc mój post miałby dane jako {plik: plik, token: token}, gdzie adres URL jest blokadą blokady, która sprawdza token i stronę odsyłającą, aby sprawdzić poprawność dostępu. Brzmi skomplikowanie, ale tak nie jest. Możesz to zrobić z podstawowymi sesjami i formularzem logowania. Może 20 minut na skonfigurowanie. –

+0

"Jeśli serwer wykonuje uwierzytelnianie HTTP przed udzieleniem odpowiedzi, para nazwa użytkownika i hasło mogą zostać wysłane za pomocą opcji nazwy użytkownika i hasła." – Incognito

2

Read the funny manual

Nie należy również dokonać ciąg kwerendy tak to wychodzi na pasku URI, sprawiają, że obiekt. Również średnik pojawia się na końcu tego oświadczenia.

$.ajax({ 
    url: "https://example.com", 
    type: "POST", 
    data: { 
      "___PUT_BODY___=" : file, 
      "&file="   : time 
      }, 
    password : "theP4s$w0rD!", 
    username : "Bob's big bad world of HTTP Auth" 

}); 
0

Jeśli strona wyślesz z jest publiczny, czy nazwa użytkownika/hasło muszą pozostać prywatne należy rozważyć wprowadzenie nazwy użytkownika/hasła na stronie.

Możesz publikować na stronie lokalnej na swoim serwerze, która z kolei może wysyłać dane, na przykład zwijając się do serwera odbierającego.

Używając zawinięcia możesz wykonać dowolne uwierzytelnienie.