JavaScript:
Een HTTP-verzoek verzenden met basisauthenticatie
Hoe:
Hier is een snel voorbeeld met behulp van JavaScript’s Fetch API:
const url = 'https://some-protected-resource.com/data';
const username = 'YourUsername';
const password = 'YourPassword';
const headers = new Headers();
headers.set('Authorization', 'Basic ' + btoa(username + ':' + password));
fetch(url, { method: 'GET', headers: headers })
.then(response => {
if (response.ok) return response.json();
throw new Error('Network response was not ok.');
})
.then(data => console.log(data))
.catch(error => console.error('Fetch-fout: ', error));
Voorbeelduitvoer (afgedrukt naar de console):
{
"protected": "data",
"moreData": 12345
}
Diepere Duik
Voordat we beginnen, laten we wat context krijgen. Basisauthenticatie is een van de eenvoudigste vormen van webservicesbeveiliging, die referenties verzendt in headers bij elk verzoek.
Historische Context:
- Basis HTTP-auth is een oude methode, oorspronkelijk uiteengezet in de RFC 7617 uit 2015, ter vervanging van de nog oudere RFC 2617 uit 1999.
- Het werd veel gebruikt vanwege zijn eenvoud, maar is niet zo veilig zonder HTTPS, aangezien base64 codering eenvoudig omkeerbaar is.
Alternatieven:
- OAuth: Een veiligere en complexere standaard voor toegangsdelegatie, gebruikt in gevallen waarin u toegang moet bieden zonder wachtwoordgegevens te delen.
- API-sleutels: Een enkele token die gemakkelijker te beheren is dan complexe OAuth-protocollen.
- Bearer Tokens: In het bijzonder JWT (JSON Web Tokens), die meer informatie kunnen dragen.
Implementatiedetails:
- Base64-codering transformeert de gebruikersnaam:wachtwoord-reeks in een reeks tekens die breder overdraagbaar is.
- Zorg altijd voor een HTTPS-verbinding, om te voorkomen dat inloggegevens worden onderschept.
- Moderne ontwikkeling geeft de voorkeur aan tokens en sessiecookies voor authenticatie, aangezien ze veiliger en veelzijdiger zijn.