Как мне выполнить базовую аутентификацию с RestClient? - PullRequest
32 голосов
/ 12 сентября 2010

Кто-нибудь знает, как выполнить базовую аутентификацию с RestClient ?

Мне нужно создать частный репозиторий на GitHub через их RESTful API.

Ответы [ 3 ]

42 голосов
/ 19 ноября 2010

Самый простой способ - вставить данные в URL:

RestClient.get "http://username:password@example.com"
30 голосов
/ 08 октября 2011

Вот пример рабочего кода, где я поддерживаю необязательный basicauth, но не требую, чтобы имя пользователя и пароль были встроены в URL:

def get_collection(path)
  response = RestClient::Request.new(
    :method => :get,
    :url => "#{@my_url}/#{path}",
    :user => @my_user,
    :password => @my_pass,
    :headers => { :accept => :json, :content_type => :json }
  ).execute
  results = JSON.parse(response.to_str)
end

Обратите внимание, что если @my_user и @mypass не созданы, они прекрасно работают без basicauth.

16 голосов
/ 12 сентября 2010

Из источника похоже, что вы можете просто указать пользователя и пароль как часть вашего объекта запроса.

Вы пробовали что-то вроде:

r = Request.new({:user => "username", :password => "password"})

Также, если вы посмотрите вниз на раздел Shell в ReadMe , у него есть пример определения его как части restshell.

$ restclient https://example.com user pass
>> delete '/private/resource'
...