私は rauth の作成者でありメンテナーです。
Rauth はredirect_uri
. ただし、最終的な目標がサーバーをセットアップすることではない場合、これはプロバイダーの要求があっても実行できるはずredirect_uri
です。たとえば、Flask を使用して最小限のサーバーをセットアップできる localhost にリダイレクトするか、プロバイダーが許可する場合は、Facebook がhttps://www.facebook.com/connect/login_success.htmlを提供するなど、他の任意の URLこの目的。また、使用しているプロバイダーにも同様のスキームがある場合があります。これは rauthの例です。
もう 1 つのオプションは、grant_type=password で Bearer Auth を使用することです。すべての OAuth 2.0 プロバイダーはBearer Auth をサポートすることになっていますが、パスワード grant_type を実装していない可能性があります。redirect_uri
代わりに、サーバーにユーザー資格情報を渡すことになり、アクセス トークンが返されます。プロバイダーがパスワードの grant_type を使用した Bearer Auth を許可している場合、これはおそらく理想的な方法です。Rauth 0.5.3 はデフォルトで Bearer Auth を使用しようとするため、grant_type を渡すだけで済みます。これを行う前に、必ず更新してください。
簡単な例を次に示します。
# assume you have constructed an OAuth2Service object and bound it to `serv`
params = {'grant_type': 'password',
'username': 'foo',
'password': 'hunter2'}
s = service.get_auth_session(params=params)
r = s.get('https://example.com/api/some/endpoint')
プロバイダーや目的によっては、もう少し調査が必要になる場合があります。ただし、うまくいけば、これで何かを始めることができます。
編集
パスワードgrant_typeに関する私のコメントは少し混乱していると思います.Bearer Authで使用する必要があることを暗示しているようです(ここでBearer Authとは、Bearer形式のAuthorizationヘッダーにアクセストークンを添付することを意味します)が、実際にはだ。推奨されませんが、資格情報をエンティティ メソッドと共に送信することは許容されます[1]。rauth を使用していて、認証が期待どおりに機能していないことがわかった場合は、次のように Bearer Auth を無効にする必要がある場合があります。
s = service.get_auth_session('/some/resource',
data={'code': code},
bearer_auth=False)
仕様から:
[1] 「クライアントは、ベアラー HTTP 承認スキームで Authorization リクエスト ヘッダー フィールドを使用して、ベアラー トークンで認証されたリクエストを作成する必要があります。リソース サーバーはこのメソッドをサポートする必要があります。」