2016-03-23 9 views
0

APIのコンテキストでは、各リクエストでユーザーを認証するためにAuthorization Headerのトークンを使用している場合、RESTfulルートを設定するにはどうすれば 'User ID 'のURL要求ですか?APIでのRESTfulルーティング - ヘッダー認証

例:

POST /api/school/5/user

は学校

DELETE /api/school/5/user/???
にユーザーを追加しますが、DELETE要求がどの場合は、要求にユーザーIDが必要となる学校

からユーザーを削除します。 Bearer Authorizationトークンを使用していて、URLに渡されないと、これらの種類のリソースが難しくなります 設定する。

これは一般的にどのように処理されますか?あなたは、URLを介してユーザーIDを渡すだけでなく、許可トークンから取得したユーザのユーザIDと比較することができ

1):

+0

AuthorizationヘッダーはリソースIDにどのように関連していますか?それはどういう意味ですか? – Kamil

+0

@ Kamilしかし、ユーザーはリソース・モデル(またはサブ・リソース)になる可能性があります。しかし、現在のユーザーが認可トークンを使用して取得されていて、そのユーザーに関連して安心したいのであれば、URL経由でユーザーを渡さないので難しいようです – djt

答えて

0

私はこのために発見された最良の解決策です。だから、のようなURLがあるとします。

/api/school/5/user/7

をそして、あなたミドルウェアでは、あなたの許可Heaerでそのユーザーは、URLを介して渡されたユーザーと一致していることを確認してください。このようにして、RESTfulルーティングを維持します。

OR )は、いくつかのURL構造を変更し、Meルートのプレフィックスを持っています。したがって、ログインしたユーザーをベースにしたルートには、接頭辞Me(またはそれに類するもの)を付ける必要があります。 Spotify、Facebook、および他の多くの企業のAPIがこれを使用しています。

最初の解決方法よりも、最初の方が標準であるとはいえ、ユーザーのIDをURLに不必要に渡すという考えは理想的ではないように思えるからです。

関連する問題