Een HTTP-verzoek verzenden met basisauthenticatie

Ruby:
Een HTTP-verzoek verzenden met basisauthenticatie

Hoe te:

Om een HTTP-verzoek met basisverificatie te verzenden, gebruik je doorgaans de module Net::HTTP in Ruby. Hier is een snel voorbeeld:

require 'net/http'
require 'uri'

uri = URI('http://example.com')
gebruikersnaam = 'je_gebruikersnaam'
wachtwoord = 'je_wachtwoord'

verzoek = Net::HTTP::Get.new(uri)
verzoek.basic_auth(gebruikersnaam, wachtwoord)

reactie = Net::HTTP.start(uri.hostname, uri.port) {|http|
  http.request(verzoek)
}

puts reactie.body

Als je deze code uitvoert met geldige inloggegevens, zul je de body van de reactie uitgeprint zien. Als de inloggegevens ongeldig zijn, krijg je een foutmelding.

Diepere Duik

Basisverificatie heeft een lange geschiedenis als deel van webprotocollen, teruggaand tot de vroege RFC’s die de werking van het internet definieerden. Het is een eenvoudige methode voor toegangscontrole: de gebruikersnaam en het wachtwoord worden gecodeerd met Base64 en in de HTTP-header doorgegeven.

Echter, basisverificatie verzendt inloggegevens in platte tekst (hoewel gecodeerd), dus het is niet veilig over HTTP. Het is beter om HTTPS te gebruiken om inloggegevens veilig te houden voor nieuwsgierige blikken.

Er zijn veiligere alternatieven zoals OAuth, dat vaak wordt gebruikt voor API-verificatie. OAuth staat gebruikers toe om toegang van derde partijen te autoriseren zonder inloggegevens te delen. Toch blijft basisverificatie in gebruik, vooral voor interne toepassingen en snelle en vuile scripting.

Een detail om op te merken is dat Ruby’s Net::HTTP Basic Auth niet native behandelt totdat je expliciet de basic_auth methode gebruikt. Het is ook cruciaal om mogelijke uitzonderingen en foutresponsen die kunnen resulteren uit het HTTP-verzoek te behandelen.

Zie Ook