Yahoo! ID連携

Implicitフロー

Implicit

ImplicitはネイティブアプリやJavaScriptのようなブラウザー上で動作するクライアントに最適化され、アクセストークン取得のフローも簡略化されています。

クライアント側で動作するため、セキュリティー上リフレッシュトークンはサポートされず、アクセストークンの有効期限が切れるたびにブラウザーのセッションのチェックを行い、アクセストークンの再発行を行います。

ImplicitフローはWebAPIアクセスに必要となるアクセストークンがブラウザーに直接渡されてしまうことや、アクセストークンに紐づいているユーザーを認可されたユーザーとして扱ってしまうためIDトークンの検証を推奨します。



エンドポイント仕様書

エンドポイントの詳細な仕様は以下をご覧ください。



フロー



1. ユーザー認可リクエスト

  1. クライアントアプリはユーザーの認可を得るため、ユーザーをAuthorizationエンドポイントへリダイレクトさせます。
  2. Authorizationエンドポイントはユーザーを認証して、クライアントアプリがアクセスする権限を与えることについてユーザーに確認をとります。
  3. ユーザーによる認可が得られた場合、事前に登録された戻り先URLへユーザーをリダイレクトさせ、ハッシュフラグメントにアクセストークン(access_token)と指定されたstateを含みクライアントアプリに渡します。


2. アクセストークン抽出

  1. スクリプトでアクセストークンとstateを抽出し、リクエスト時に送信したstateと渡されたstateが同一かどうかを確認します。
  2. ID Tokenの検証を行い、自分に発行されたアクセストークンかどうかを確認し、ログイン処理を行います。


3. ウェブAPIアクセス

  1. クライアントアプリはアクセストークンを使ってウェブAPIのエントリーポイントへリクエストを送信します。
  2. ウェブAPIはアクセストークンが有効な場合、正常なレスポンスを返却します。アクセストークンが無効な場合はエラーレスポンスを返却します。
  3. クライアントアプリは取得したレスポンスをもとに処理を継続します。

上記1~3のフローにおけるクライアントアプリの実装についてはサンプルコードを参照してください。



Yahoo!知恵袋で調べる