1

OAuth 経由で承認されたクラウド ストレージ API に取り組んでいます。サードパーティ アプリケーションのユーザーは、そのアプリケーションが RESTful API を介してファイルやデータにアクセスすることを許可できます。

現在、サードパーティ アプリによるユーザー アカウントへのアクセスは 1 回に制限されています。たとえば、Access Token テーブルには、consumer 列と user 列に UNIQUE があります。これは一見理にかなっています。ユーザーがサードパーティ アプリケーションを 2 回承認するためにサービスに送られることは決してないためです。 -承認されました。

しかし、このユーザーがサードパーティのアプリに 2 つのアカウントを持っていて、そのアプリを私たちのサービスの単一のアカウントに 2 回接続させたい場合はどうなるでしょうか? Reddit などのサービスで複数のアカウントが普及していることを考えると、これは可能性が高いと思われます。

これまでに思いついた可能な解決策は次のとおりですが、どれも完璧ではありません。

  • 2 番目の認証要求中にエラーを表示します。これは、ユーザーにとってイライラする経験のように見えます。一種の「警官」です。
  • 以前のトークンを削除する:以前のアカウントが機能しなくなるため、これはユーザーを苛立たせる可能性があります。警告を表示したとしても、正確に何が起こっているのかを説明するのは難しいでしょう。
  • 最初のリクエストと同じアクセス トークンを返す:アクセスがリクエストされるたびに、一連のアクセス許可も渡されます。2 番目の要求のアクセス許可は、最初の要求のアクセス許可とは異なる場合があります。また、2 番目に生成されたリクエスト トークンがアクセス トークンに適切に関連付けられていないため、これが OAuth 仕様に違反するかどうかは不明です。
  • 2 つの生成を許可する:ユーザーが許可されたアプリケーションでいっぱいの画面にアクセスして 1 つを取り消すと、どの許可がどのサードパーティ アカウントに関連付けられているかがわからないため、混乱を招く可能性があります。異なる認証を識別するためにリクエスト トークンが生成されるときに、オプションのサードパーティusernameパラメータを要求することができます (現在、非 OAuth 標準permissionパラメータを要求しています)。しかし、これは開発者の 99% によって使用されないようであり、アプリケーション開発をより混乱させる可能性があります。

この状況を処理する最善の方法は何ですか? このユースケースを処理するための標準化された方法はありますか?

4

1 に答える 1

0

あなたの最後のケースが正しい方法だと思います-2つ生成できるようにします

ユーザーが許可されたアプリケーションでいっぱいの画面にアクセスするとき、同じアプリケーションを 2 回表示する必要はありません。ユーザーがアプリケーション アクセスを取り消す場合は、アプリケーションに関連付けられているトークンを削除するだけで済みます。つまり、すべてのトークンを使用したアプリへの彼のすべての承認は、取り消しによってなくなりますが、これは問題ありません。

于 2013-05-13T22:51:26.193 に答える