利用者がID、パスワードなどによって本人であることを確認する行為を「認証」、本人であることを確認したあと、その利用者に対して適切なサービス(またはデータへのアクセス権限)を提供することを「認可」といいます。OAuthにおいては、利用者の同意によりデータへのアクセス権限がサードパーティーのアプリケーションへ渡されることになりますが、サードパーティーにアクセス権限を付与することも、ここでは「認可」といいます。Userの3者間でデータのやりとりが行われます。これらは以下のとおりに定義します。Userのデータを保有している、データ提供元。JAPANのことを指します。Userのデータへのアクセスを要求するアプリケーション。サードパーティーのアプリケーションのことを指します。UserConsumerが提供するアプリケーションの利用者、データの所有者。IDの利用者のことを指します。リクエストトークン取得フローConsumerは未認可のリクエストトークンを取得するためにリクエストトークン取得エンドポイントにリクエストを送信します。ProviderはConsumerを認証し、問題がなければ未認可のリクエストトークン(oauth_token)を返却します。Consumerは未認可のリクエストトークンを取得後、一時的に保存します。Providerの認可リクエストエンドポイントへリダイレクトさせます。Userに確認をとります。Userをリダイレクトさせ、認可済みリクエストトークンと確認用コード(oauth_verifier)をConsumerに渡します。Consumerは保存しておいたリクエストトークンと、渡されたリクエストトークンが同一かどうか確認します。Tokenの取得アクセストークン新規取得フローConsumerは認可済みのリクエストトークンと確認用コードを使って、アクセストークン取得エンドポイントへリクエストを送信します。ProviderはConsumerを認証し、アクセストークン(oauth_token)とセッションハンドル(xoauth_yahoo_session_handle)、およびユーザー識別子(xoauth_yahoo_guid)を返却します。Consumerは取得したユーザー識別子をキーにアクセストークンとセッションハンドルをあとで利用するため安全に保存します。Consumer独自のIDがある場合は、必要に応じて取得したユーザー識別子とConsumerのIDの関連づけ処理を行ってから、独自IDをキーにアクセストークンとセッションハンドルを保存します。アクセストークン更新フローアクセストークンの有効期限が切れた場合、Consumerは保存しておいたセッションハンドルと期限切れアクセストークンを用いてアクセストークン更新エンドポイントへリクエストを送信します。ProviderはConsumerを認証し、新しいアクセストークン(oauth_token)を返却します。Consumerから渡されたセッションハンドルの有効期限が切れていた場合はエラーを返却します。Consumerは新しいアクセストークンを取得して期限切れのアクセストークンと置き換えます。セッションハンドルの期限切れでエラーが返却された場合は、Consumerは1のフローからやり直して、再度ユーザーの認可を取り直す必要があります。APIのエントリーポイントへリクエストを送信します。APIはアクセストークンが有効な場合、正常なレスポンスを返却します。アクセストークンが無効な場合はエラーレスポンスを返却します。Consumerは取得したレスポンスを元に処理を継続します。上記1~4のフローにおけるConsumerの実装についてはサンプルコードを参照してください。