私はREST APIを実装し、それをドアキーパで保護しました。 私はそれにアクセスするための小さなクライアントプログラムを書いており、リソース所有者資格フローを使ってうまく動作します。DoAのクライアント資格情報を使用したOAuthでの投稿
今、クライアントの資格情報flowを使用して呼び出しを実装しようとしています。だから私はリンクの例に従った。
GETリクエストを使用しているときはすべてうまく動作しますが、POSTリクエストを使用しているときは401 Unauthorized
になります。これは、リソース所有者を必要としないメソッドへの呼び出しです。
私は私のAPIコントローラを持っているだけで、関連する事は次のとおりです。
doorkeeper_for :all
私は(私はに必要なのでしょうか?)その種のいずれかのスコープまたは何も実装していません。
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}" }
任意のアイデア私が間違ってやっていることがあります。
私のクライアントコードは(正確にexample in githubのように)このように見えますか?クライアント資格情報フローを有効にするために、アプリケーションで何か特別なことはありますか?
私の問題を解決するのに役立ちました。戻ってきて、これを解決してくれてありがとう! – lyonsinbeta