多くのサイトでADALSearchedを使用してiOSでマルチリソースサポートを有効にする方法はありますが、リフレッシュトークンとアクセストークンを使用して、誰もこの流れを簡単に説明できますか?複数のリソースを持つ場合のADALライブラリの使用方法
ライブラリーによると、ADTokenCacheStoreItemはaccessTokenがなくてもアイテムがマルチリソースのリフレッシュトークンを格納する場合にはntです。ただし、acquireTokenWithResourceを呼び出すときはいつでも:clientId:redirectUri:アクセストークンとリフレッシュトークンの両方を取得しています。ライブラリがマルチソースリクエストであることを伝えることができます。必要な設定はありますか?
/*!受信したアクセストークン。アイテムがマルチリソースリフレッシュトークンを格納する場合は、nilでなければなりません。 / @property NSString accessToken;
また、異なるエンドポイントの有無にかかわらず、各APIを呼び出す前に、必ずacquireTokenWithResource:clientId:redirectUriを呼び出す必要がありますか。リソースごとにアクセストークンと有効期限をキャッシュ/保存するのは自分の責任ですか? また、私はマルチリソースの場合にサイレントログインを処理できますか?
私はあなたの懸念にかなり従っていません。 「resource1」の認可リクエストを発行し、複数リソースのリフレッシュトークンを受信したとすると、「resource2」の認可リクエストを発行すると、ユーザーに認証を求めるメッセージが表示されずにアクセストークンが受信されます(リフレッシュトークンは元の要求と現在の間に期限切れになっています)。 – Paulw11
私は10のAPI呼び出し(各呼び出しにはアクセストークンが必要です)、8つはresource1を持っていると考えます。 、残りの2つはresource2を持っています。この場合、acquireTokenWithResource:clientId:redirectUri:メソッドを10回呼び出す必要がありますか?あるいは、リソースIDとアクセストークンのキャッシュマッピングを維持する必要があり、特定のリソースごとにaccessTokenの有効期限を処理するだけで済みます。 – Shyam
リソースへのアクセスを試みる前に 'acquireTokenWithResource:clientId:redirector:'を呼び出します。キャッシュに有効なトークンがある場合、そのトークンが返されます。存在しない場合、ライブラリはリフレッシュトークンを使用してアクセストークンを取得しようとします。リフレッシュトークンが期限切れになった場合、ユーザーは再認証を求めるメッセージが表示されます。 – Paulw11