iPad アプリを Box と統合しようとしています。Box API で、あるユーザーのアカウントのファイルが別のユーザーに返されるという問題が発生しています。この問題を再現する手順は次のとおりです。
- このガイドで説明されているように、承認呼び出しを行い、アクセス トークンを取得します。ログインするために、Safari で Box ログイン ページを開いています。ユーザーがログインした後にアプリを開くリダイレクト URL のカスタム URL スキームを指定しました。
- アクセス トークンを取得したら、ルート フォルダーの内容を一覧表示する呼び出しを行います。これは成功します。
- iPad からアプリを削除し、再構築します。
- 再びログイン プロセスに進みます (ステップ 1 と同様)。ただし、今回は別の Box アカウントを使用してログインします。今回は、新しいアクセス コードと OAuth トークンを取得します。
- 新しいトークンを使用してファイルを一覧表示する呼び出しを行うと、以前のアカウントから応答が返されます。理想的には、現在許可されているユーザーのファイルを返す必要があります。
Box は応答を返すために OAuth のみを使用しますか? それとも Cookie も使用しますか? 認証してアクセス トークンを受け取った後、Box からの Cookie も表示されるためです (を使用して検証[[NSHTTPCookieStorage sharedStorage] cookies]
)。
認証フローを開始する前に、すべての Box Cookie を削除して、上記のプロセスを繰り返してみました。また、OAuth トークンをディスクに保存して取得していません。私は決して応答を保存/キャッシュしていません。
もう 1 つ気づいたことは、Safari では一度に 2 人の Box ユーザーがログインできることです。また、認証要求を行い、アクセス トークンを取得してから再度認証要求を行うと、(アクセスの許可/拒否ページを表示する代わりに) ログイン ページが再度表示されます。これは意図的なものですか?
Box v2 API と iOS 5/6 を使用しています