認証コードフローは、サードパーティが関与するシナリオを対象としています。
これらの当事者は次のとおりです。
クライアント
Web ブラウザを使用するユーザー。彼はあなたのアプリケーションを使用したいと考えています。
プロバイダ
ユーザーに関する情報があります。誰かがこのデータにアクセスしたい場合、ユーザーは最初に同意する必要があります。
あなたの(ウェブ)アプリケーション
プロバイダーからユーザーに関する情報にアクセスしたい。
これで、アプリはユーザー/authorize
に次のように伝えます (ブラウザーをエンドポイントにリダイレクトします)。
ちょっとユーザー、これが私のクライアントIDです。プロバイダーと話して、私と直接話すことを彼に許可してください.
そのため、ユーザーはプロバイダーに話しかけます (承認コードを要求し、ブラウザーでコールバック URL を開いてアプリに返します)。
プロバイダーさん、このアプリを使いたいので、データにアクセスする必要があります。いくつかのコードを教えてください。このコードをアプリケーションに渡します。
これで、アプリにはclient AND providerによって既に知られている認証コードが含まれます。これをプロバイダーに引き渡すことで、アプリは、クライアントが自分のデータへのアクセスを許可されたことを証明できます。プロバイダーが (ウェブ) アプリにアクセス トークンを発行するようになったため、(ウェブ) アプリは毎回 (少なくともしばらくの間) これらの手順をやり直す必要はありません。
アプリがクライアント側で直接実行されている他の種類のアプリケーション (iPhone/Android アプリや Javascript クライアントなど) の場合、中間ステップは不要です。