Chcę napisać proste uwierzytelnianie podstawowe z pobieraniem, ale ciągle otrzymuję błąd 401. Byłoby wspaniale, gdyby ktoś mi powiedział, co jest nie tak z kodem:
let base64 = require('base-64');
let url = 'http://eu.httpbin.org/basic-auth/user/passwd';
let username = 'user';
let password = 'passwd';
let headers = new Headers();
//headers.append('Content-Type', 'text/json');
headers.append('Authorization', 'Basic' + base64.encode(username + ":" + password));
fetch(url, {method:'GET',
headers: headers,
//credentials: 'user:passwd'
})
.then(response => response.json())
.then(json => console.log(json));
//.done();
function parseJSON(response) {
return response.json()
}
javascript
fetch-api
daniel.lozynski
źródło
źródło
base64
odnosi się do biblioteki zaimportowanej w oryginalnym poście. Nie jest to wbudowana globalna biblioteka, ale biblioteka zaimportowana w module CJS.Rozwiązanie bez zależności.
Węzeł
Przeglądarka
źródło
window.btoa(username + ':' + password);
developer.mozilla.org/en-US/docs/Web/API/WindowBase64/…window.btoa(unescape(encodeURIComponent(string)));
powinno wykonać zadanie, możesz przeczytać więcej na ten temat tutaj: developer.mozilla.org/en-US/docs/Web/API/WindowBase64/ ...fetch
nie istnieje.Możesz także użyć btoa zamiast base64.encode ().
źródło
Jeśli masz serwer zaplecza, który pyta o poświadczenia podstawowego uwierzytelnienia przed aplikacją, to wystarczy, a następnie użyje go ponownie:
źródło
Prosty przykład kopiowania i wklejania do konsoli Chrome:
źródło
UŻYTKOWNICY WĘZŁÓW (REAGUJ, EKSPRESOWO) WYKONUJ TE KROKI
npm install base-64 --save
import { encode } from "base-64";
Nie zapomnij zdefiniować całej tej funkcji jako
async
źródło
Udostępnię kod, który ma treść żądania danych Basic Auth Header,
źródło
Nie jest to bezpośrednio związane z początkową kwestią, ale prawdopodobnie komuś pomoże.
Napotkałem ten sam problem, gdy próbowałem wysłać podobne żądanie przy użyciu konta domeny. Więc mój problem nie zawierał znaku ucieczki w nazwie użytkownika.
Zły przykład:
Dobry przykład:
źródło