OAuth 経由で承認されたクラウド ストレージ API に取り組んでいます。サードパーティ アプリケーションのユーザーは、そのアプリケーションが RESTful API を介してファイルやデータにアクセスすることを許可できます。
現在、サードパーティ アプリによるユーザー アカウントへのアクセスは 1 回に制限されています。たとえば、Access Token テーブルには、consumer 列と user 列に UNIQUE があります。これは一見理にかなっています。ユーザーがサードパーティ アプリケーションを 2 回承認するためにサービスに送られることは決してないためです。 -承認されました。
しかし、このユーザーがサードパーティのアプリに 2 つのアカウントを持っていて、そのアプリを私たちのサービスの単一のアカウントに 2 回接続させたい場合はどうなるでしょうか? Reddit などのサービスで複数のアカウントが普及していることを考えると、これは可能性が高いと思われます。
これまでに思いついた可能な解決策は次のとおりですが、どれも完璧ではありません。
- 2 番目の認証要求中にエラーを表示します。これは、ユーザーにとってイライラする経験のように見えます。一種の「警官」です。
- 以前のトークンを削除する:以前のアカウントが機能しなくなるため、これはユーザーを苛立たせる可能性があります。警告を表示したとしても、正確に何が起こっているのかを説明するのは難しいでしょう。
- 最初のリクエストと同じアクセス トークンを返す:アクセスがリクエストされるたびに、一連のアクセス許可も渡されます。2 番目の要求のアクセス許可は、最初の要求のアクセス許可とは異なる場合があります。また、2 番目に生成されたリクエスト トークンがアクセス トークンに適切に関連付けられていないため、これが OAuth 仕様に違反するかどうかは不明です。
- 2 つの生成を許可する:ユーザーが許可されたアプリケーションでいっぱいの画面にアクセスして 1 つを取り消すと、どの許可がどのサードパーティ アカウントに関連付けられているかがわからないため、混乱を招く可能性があります。異なる認証を識別するためにリクエスト トークンが生成されるときに、オプションのサードパーティ
username
パラメータを要求することができます (現在、非 OAuth 標準permission
パラメータを要求しています)。しかし、これは開発者の 99% によって使用されないようであり、アプリケーション開発をより混乱させる可能性があります。
この状況を処理する最善の方法は何ですか? このユースケースを処理するための標準化された方法はありますか?