JavaScript:
Sende en HTTP-forespørsel med grunnleggende autentisering
Hvordan:
Her er et raskt eksempel med bruk av JavaScripts Fetch API:
const url = 'https://some-protected-resource.com/data';
const brukernavn = 'DittBrukernavn';
const passord = 'DittPassord';
const headers = new Headers();
headers.set('Authorization', 'Basic ' + btoa(brukernavn + ':' + passord));
fetch(url, { method: 'GET', headers: headers })
.then(response => {
if (response.ok) return response.json();
throw new Error('Nettverkssvaret var ikke ok.');
})
.then(data => console.log(data))
.catch(error => console.error('Fetch-feil: ', error));
Eksempel på utskrift (skrevet ut til konsollen):
{
"beskyttet": "data",
"merData": 12345
}
Dypdykk
Før vi dykker ned, la oss få litt kontekst. Grunnleggende autentisering er en av de enkleste formene for websikkerhet og sender legitimasjon i headere med hver forespørsel.
Historisk kontekst:
- Grunnleggende HTTP-autentisering er en gammel metode, opprinnelig skissert i RFC 7617 fra 2015, som erstatter den enda eldre RFC 2617 fra 1999.
- Den var mye brukt på grunn av sin enkelhet, men er ikke like sikker uten HTTPS, ettersom base64-koding lett kan reverseres.
Alternativer:
- OAuth: En sikrere og mer kompleks standard for tilgangsdelegering, brukt i tilfeller hvor du trenger å gi tilgang uten å dele passordlegitimasjon.
- API-nøkler: Et enkelt token som er lettere å håndtere enn komplekse OAuth-protokoller.
- Bærertokens: Spesielt JWT (JSON Web Tokens), som kan bære mer informasjon.
Implementeringsdetaljer:
- Base64-koding omdanner strengen brukernavn:passord til en sekvens av tegn som er mer universelt overførbar.
- Forsikre deg alltid om at tilkoblingen er HTTPS, for å forhindre at legitimasjon blir avlyttet.
- Moderne utvikling foretrekker tokens og sesjonscookies for autentisering, da de er sikrere og mer allsidige.