Enviando uma requisição HTTP com autenticação básica

Ruby:
Enviando uma requisição HTTP com autenticação básica

Como Fazer:

require 'net/http'
require 'uri'

uri = URI('http://exemplo.com/recurso_protetido')
req = Net::HTTP::Get.new(uri)
req.basic_auth 'usuario', 'senha'

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

puts resposta.body

Saída esperada:

Conteúdo do recurso protegido.

Aprofundamento

A autenticação básica HTTP existe desde os primórdios da web. É uma forma direta de controle de acesso, mas não é segura por padrão pois as credenciais podem ser facilmente decodificadas. Alternativas mais seguras como OAuth e tokens JWT surgiram para melhorar este aspecto.

Detalhes de implementação:

  • As credenciais são codificadas em Base64 e passadas no cabeçalho ‘Authorization’ da seguinte forma: Authorization: Basic <token>.
  • O método ‘basic_auth’ do Ruby simplifica esse processo.
  • Não esqueça de usar HTTPS sempre que possível para proteger as credenciais durante a transmissão.

Veja Também