SDKHybridフローImplicitフローHybridフローiOSのHybridフローのサンプルコードの説明をします。SDKを任意の場所にダウンロードして解凍してください。解凍後、YConnectSDK.xcodeprojをアプリケーションのプロジェクトに追加してください。詳細な手順を下記に示します。XCodeでアプリケーションのプロジェクトを開いてください。"を選択してください。SDK内のYConnect.xcodeprojを選択し、"Add"してください。SDKを利用するためにプロジェクトの設定を行います。Libraries"の"+"ボタンを押してください。ダイアログが表示されるので、WorkspaceからlibYConnect.aを選択し、"Add"してください。SDK内のヘッダファイルをimportするために設定を行います。SDKのパスを追加します。最後にコールバックURLを設定します。Types"を展開してください。ID登録時に発行されるカスタムURIスキーム「yj-xxxxx」を指定してください。identifier"と同じ値が推奨されています。カスタムURIスキームはアプリケーションの管理から変更可能です。Headerファイルを追加する必要があります。Headerファイルがプロジェクトに追加されていない場合は、以下の手順で追加を行なってください。"File"を選択してください。File"を選択してください。ファイル名を"Bridging-Header.h"とし、"Create"してください。Headerファイルを使用するための設定を行います。Headerファイルのパスを追加します。SDKのヘッダファイルをimportするコードを追加してください。スコープ(複数ある場合はスペース区切り)を記載してくださいplistに記載するキーと値の内訳は下記のとおりです。ID発行時に登録したコールバックURIを指定します。ログイン画面、同意画面のテンプレートの種類を指定する場合に利用します。touch※任意のパラメーターです。token」のいずれかを指定してください。code%20id_token※URLエンコードが必要です。APIから取得できる属性情報を指定できます。YESにすると同意画面で「同意しない」ボタンをクリックした際にcodeパラメーターを付加せずにredirect_uriへリダイレクトさせます。指定しない場合はYahoo!トップへ遷移します。YES※任意のパラメーターです。最大認証経過時間を指定します。指定された秒数よりも認証日時が経過していた場合は再認証が必要です。3600※任意のパラメーターです。Authorizationエンドポイントにリクエストして同意画面を表示するYConnectManagerクラスにはHybridフローで必要なメソッドがすべて実装されています。YConnectManagerクラスを使って、アプリ内ブラウザタブであるASWebAuthenticationSession、SFAuthenticationSessionもしくはSFSafariViewControllerに同意画面を表示させます。サンプルコードはStoryboardを使用しています。シングルトンパターンのインスタンスを取得する。同意画面のURLを取得する。ASWebAuthenticationSession、SFAuthenticationSession、もしくはSFSafariViewControllerで同意画面を表示する。※iOS9〜iOS10をサポート対象に含める場合は必ずこちらを利用してください。ASWebAuthenticationSession、SFAuthenticationSessionで同意画面を表示する。ログイン成功時は自動でコールバックURLのフラグメントに付加されたパラメーターを抽出する。※iOS9〜iOS10をサポート対象に含めず、iOS11以上をサポート対象とする場合はこちらの利用を推奨します。ユーザーの再認可のための定数です。ユーザーの再認証のための定数です。同意画面非表示のための定数です。ID切り替え画面を強制表示するための定数です。}}認証サーバー側で発行するstateとnonceは独自の仕様でランダムな文字列を生成してデータベースなどに保存してください。stateはAuthorizationエンドポイントからのコールバックURL受取時と認証サーバーへの認可コード連携時に、nonceはIDトークンを復号時の検証に必要です。各パラメーター値の詳細についてはAuthorizationエンドポイントを参照してください。サンプルでは各パラメーターを乗せたURLにリクエストしています。Tokenを抽出するiOS9〜iOS10をサポート対象に含める場合は、AppDelegateでコールバックURLを受け取るための実装が必要です。Tokenなどを抽出します。コールバックURLのフラグメントに付加されたパラメーターを抽出する。Tokenを取得する。Tokenを取得する。Tokenの有効期限を取得する。Tokenを取得する。false}iOS9〜iOS10をサポート対象に含めず、iOS11以上のみをサポート対象とする場合はAppDelegateに追加の実装は必要ありません。Tokenなどの取得が可能です。Tokenを発行します。Tokenの暗号化された文字列が返されます。Tokenの発行元などの情報を取得します。Tokenオブジェクトのプロパティーに保持されているので、必要に応じて取り出して利用してください。Tokenを用いてユーザー識別子などを取得します。APIにリクエストする。Tokenを更新します。Token、UserInfo情報の保存は、悪意のある外部アプリケーションから盗みとられないように注意が必要です。取得したトークンやユーザー情報を保存する場合には、適宜暗号化や難読化し外部から読み取られないようにしてください。SDK内の"YConnectAssets.xcassets"に含まれているログインボタンは、デフォルト画像としてアプリケーション内で使用できます。"YConnectAssets.xcassets"には以下の4種類のログインボタンがデフォルト画像として用意されています。デザインガイドラインに沿って利用してください。*)circleInverseImageデフォルトのログインボタンを使用するには、"YConnectAssets.xcassets"をプロジェクトに追加する必要があります。Resources"の"+"ボタンを押してください。Other..."から"YConnectAssets.xcassets"を"Open"してください。Resources"に"YConnectAssets.acassets"が追加されていることを確認できたら完了です。Inspector"の"Image"から任意の画像名を指定してください。以下のように"YConnectLoginButtonImage"クラスのメソッドを使用して任意の画像を指定してください。UIControl.State.normal)}ImplicitフローiOSのImplcitフローのサンプルコードの説明をします。SDKを任意の場所にダウンロードして解凍してください。解凍後、YConnectSDK.xcodeprojをアプリケーションのプロジェクトに追加してください。詳細な手順を下記に示します。XCodeでアプリケーションのプロジェクトを開いてください。"を選択してください。SDK内のYConnect.xcodeprojを選択し、"Add"してください。SDKを利用するためにプロジェクトの設定を行います。Libraries"の"+"ボタンを押してください。ダイアログが表示されるので、WorkspaceからlibYConnect.aを選択し、"Add"してください。SDK内のヘッダファイルをimportするために設定を行います。SDKのパスを追加します。最後にコールバックURLを設定します。Types"を展開してください。ID登録時に発行されるカスタムURIスキーム「yj-xxxxx」を指定してください。identifier"と同じ値が推奨されています。カスタムURIスキームはアプリケーションの管理から変更可能です。Headerファイルを追加する必要があります。Headerファイルがプロジェクトに追加されていない場合は、以下の手順で追加を行なってください。"File"を選択してください。File"を選択してください。ファイル名を"Bridging-Header.h"とし、"Create"してください。Headerファイルを使用するための設定を行います。Headerファイルのパスを追加します。SDKのヘッダファイルをimportするコードを追加してください。スコープ(複数ある場合はスペース区切り)を記載してくださいplistに記載するキーと値の内訳は下記のとおりです。ID発行時に登録したコールバックURIを指定します。ログイン画面、同意画面のテンプレートの種類を指定する場合に利用します。touch※任意のパラメーターです。token」のいずれかを指定してください。code%20id_token※URLエンコードが必要です。APIから取得できる属性情報を指定できます。YESにすると同意画面で「同意しない」ボタンをクリックした際にcodeパラメーターを付加せずにredirect_uriへリダイレクトさせます。指定しない場合はYahoo!トップへ遷移します。YES※任意のパラメーターです。最大認証経過時間を指定します。指定された秒数よりも認証日時が経過していた場合は再認証が必要です。3600※任意のパラメーターです。Authorizationエンドポイントにリクエストして同意画面を表示するYConnectManagerクラスにはImplicitフローで必要なメソッドがすべて実装されています。YConnectManagerクラスを使って、アプリ内ブラウザタブであるASWebAuthenticationSession、SFAuthenticationSessionもしくはSFSafariViewControllerに同意画面を表示させます。サンプルコードはStoryboardを使用しています。シングルトンパターンのインスタンスを取得する。同意画面のURLを取得する。ASWebAuthenticationSession、SFAuthenticationSession、もしくはSFSafariViewControllerで同意画面を表示する。※iOS9〜iOS10をサポート対象に含める場合は必ずこちらを利用してください。ASWebAuthenticationSession、SFAuthenticationSessionで同意画面を表示する。ログイン成功時は自動でコールバックURLのフラグメントに付加されたパラメーターを抽出する。※iOS9〜iOS10をサポート対象に含めず、iOS11以上をサポート対象とする場合はこちらの利用を推奨します。ユーザーの再認可のための定数です。ユーザーの再認証のための定数です。同意画面非表示のための定数です。ID切り替え画面を強制表示するための定数です。}}実際の開発の際にはstate、nonceは固定の文字列ではなく独自の仕様でランダムな文字列を生成してデータベースなどに保存してください。Tokenを復号時の検証に必要です。各パラメーター値の詳細についてはAuthorizationエンドポイントを参照してください。サンプルでは各パラメーターを乗せたURLにリクエストしています。Tokenを抽出するiOS9〜iOS10をサポート対象に含める場合は、AppDelegateでコールバックURLを受け取るための実装が必要です。Tokenなどを抽出します。コールバックURLのフラグメントに付加されたパラメーターを抽出する。Tokenを取得する。Tokenの有効期限を取得する。Tokenを取得する。false}iOS9〜iOS10をサポート対象に含めず、iOS11以上のみをサポート対象とする場合はAppDelegateに追加の実装は必要ありません。Tokenなどの取得が可能です。Tokenの暗号化された文字列が返されます。Tokenの発行元などの情報を取得します。Tokenオブジェクトのプロパティーに保持されているので、必要に応じて取り出して利用してください。Tokenを用いてユーザー識別子などを取得します。APIにリクエストする。Tokenの有効期限が切れた場合は、もう一度Authorizationエンドポイントにリクエストして、同意の処理を行ってください。Token、UserInfo情報の保存は、悪意のある外部アプリケーションから盗みとられないように注意が必要です。取得したトークンやユーザー情報を保存する場合には、適宜暗号化や難読化し外部から読み取られないようにしてください。SDK内の"YConnectAssets.xcassets"に含まれているログインボタンは、デフォルト画像としてアプリケーション内で使用できます。"YConnectAssets.xcassets"には以下の4種類のログインボタンがデフォルト画像として用意されています。デザインガイドラインに沿って利用してください。*)circleInverseImageデフォルトのログインボタンを使用するには、"YConnectAssets.xcassets"をプロジェクトに追加する必要があります。Resources"の"+"ボタンを押してください。Other..."から"YConnectAssets.xcassets"を"Open"してください。Resources"に"YConnectAssets.acassets"が追加されていることを確認できたら完了です。Inspector"の"Image"から任意の画像名を指定してください。以下のように"YConnectLoginButtonImage"クラスのメソッドを使用して任意の画像を指定してください。