Я реализовал API REST и защитил его привратником. Я написал небольшую клиентскую программу для доступа к ней, и она отлично работает с использованием учетных данных владельца ресурса.
Теперь я пытаюсь выполнить вызов с использованием учетных данных клиента flow. Итак, я следил за примером в ссылке.
Все работает отлично, когда я использую запрос GET, но когда я использую запрос POST, я получаю 401 Unauthorized
. Это вызов метода, который не требует владельца ресурса.
Единственное, что у меня есть в контроллере API:
doorkeeper_for :all
Я не реализовал никаких областей или ничего подобного (мне нужно?).
Мой клиентский код выглядит так (как в примере в github):
require 'rest-client'
require 'json'
client_id = 'my_client_id...'
client_secret = 'my_client_secret...'
response = RestClient.post 'http://localhost:3000/oauth/token', {
grant_type: 'client_credentials',
client_id: client_id,
client_secret: client_secret
}
token = JSON.parse(response)["access_token"]
# this line works great:
RestClient.get 'http://localhost:3000/api/v1/flights.json', { 'Authorization' => "Bearer #{token}" }
# this line always fails (401 Unauthorized):
RestClient.post 'http://localhost:3000/api/v1/flights.json', { 'Authorization' => "Bearer #{token}" }
Любая идея, что я могу делать неправильно? Есть ли что-то особенное в моем приложении, чтобы включить поток учетных данных клиента?