開発者がそれを使用してアプリを作成できるように、REST API として公開したい Web ベースのサービスを作成しています。開発者がユーザー アカウントを作成/管理し、API を介して認証できるようにしてほしい。これをどのように処理しますか?OAuthか何か?
これにはpython、flask、mongodbを使用しています。
開発者がそれを使用してアプリを作成できるように、REST API として公開したい Web ベースのサービスを作成しています。開発者がユーザー アカウントを作成/管理し、API を介して認証できるようにしてほしい。これをどのように処理しますか?OAuthか何か?
これにはpython、flask、mongodbを使用しています。
OAuth 2(OAuth 1よりもはるかに望ましい)を使用して、次のことに決めました。特に、リソース所有者のパスワードクレデンシャルフローを使用しています。それをRESTfulサービスに統合する方法については、次のアイデアがあります。
rel=oauth2-token
ます。(リンクを通知する方法はメディアタイプによって異なります。HALを使用Link
していますが、ヘッダーだけを使用することもできます。)Authorization
戻り、OAuth2プロセスから返されたベアラートークンをヘッダーに送信します。この時点で、すべての通常のリンクが使用可能な200を返します。アカウントの作成は公開していませんが、公開したい場合は、最初のリソースで権限のないユーザーが利用できる別のリンクを使用して公開します。そのリンクはrel
アプリケーションに固有であるため、カスタムがあります。rel=http://rels.myapi.com/users
優れたRESTful設計は、これを使用したリンクがrel
eghttp://myapi.com/users
を指し、APIのコンシューマーがPOST
そのエンドポイントを実行することを示します。これLocation
により、新しく作成されたユーザーリソースを指すヘッダーが付いた新しいユーザーリソースが返されますhttp://myapi.com/users/username
。(もちろん、ユーザーリソース自体は別のものrel
であり、単一のユーザーリソースと複数のユーザーコレクションリソースを区別します。)