Apple を使用してソーシャルログインを設定する
Apple ソーシャルサインイン用の公式 Logto コネクターです。
このガイドは、Logto コネクターについての基本的な理解があることを前提としています。未経験の方は、コネクター ガイドを参照して始めてください。
はじめに
コネクターの概念が分からない場合や、このコネクターを「サインイン & アカウント > サインアップとサインイン」に追加する方法が分からない場合は、 Logto チュートリアル を参照してください。
アプリに他のソーシャルサインイン方法がある場合、AppStore では Apple サインインが必要です。Android デバイスで Apple サインインを利用することは、Android アプリも提供している場合に便利です。
続行する前に Apple Developer Program に登録する必要があります。
アプリで Sign in with Apple を有効にする
Web アプリでのみ Sign in with Apple を実装したい場合でも、AppStore エコシステムを取り入れた既存のアプリ(つまり、有効な App ID を持っている)が必要です。
Xcode -> プロジェクト設定 -> Signing & Capabilities 経由で行うか、Certificates, Identifiers & Profiles を訪問してください。
詳細については、Apple 公式ドキュメント の「Enable an App ID」セクションを参照してください。
識別子を作成する
- Certificates, Identifiers & Profiles を訪問し、「Identifier」の横にある「+」ボタンをクリックします。
- 「Register a new identifier」ページで「Services IDs」を選択し、「Continue」をクリックします。
- 「Description」と「Identifier」を入力します(例:
Logto Testとio.logto.test)、その後「Continue」をクリックします。 - 情報を再確認し、「Register」をクリックします。
識別子で Sign in with Apple を有効にする
作成した識別子をクリックします。詳細ページで「Sign in with Apple」をチェックし、「Configure」をクリックします。
開いたモーダルで、Sign in with Apple を有効にした App ID を選択します。
プロトコルとポートを除いた Logto インスタンスのドメインを入力します。例:your.logto.domain。次に「Return URL」(つまり、リダイレクト URI)を入力します。これは /callback/${connector_id} を含む Logto URL です。例:https://your.logto.domain/callback/apple-universal。Admin Console で Apple コネクターを作成した後にランダムに生成された connector_id を取得できます。
「Next」をクリックし、その後「Done」をクリックしてモーダルを閉じます。右上の「Continue」をクリックし、「Save」をクリックして設定を保存します。
Apple は HTTP プロトコルと localhost ドメインを持つ Return URL を許可していません。
ローカルでテストしたい場合は、/etc/hosts ファイルを編集して localhost をカスタムドメインにマッピングし、ローカル HTTPS 環境を設定する必要があります。mkcert はローカル HTTPS の設定を支援します。
スコープを設定する
Apple からユーザーのメールを取得するには、スコープに email を含める必要があります。メールと名前の両方を取得するには、スコープとして name email を使用できます。詳細については、Apple 公式ドキュメント を参照してください。
ユーザーはアプリからメールアドレスを隠すことを選択する場合があります。この場合、実際のメールアドレスを取得することはできません。代わりに random@privaterelay.appleid.com のようなメールアドレスが返されます。
スコープ設定時の注意点
Apple でサインインした後にユーザーのメールアドレスをリクエストするようアプリを設定した場合、既存ユーザーについては Apple ID で再度サインインしてもメールアドレスを取得できません。これに対処するには、ユーザーに Apple ID アカウント管理ページ にアクセスし、「Apple でサインイン」セクションからアプリケーションを削除するよう案内してください。これは、アプリの詳細ページで「Apple でサインインの利用を停止」を選択することで行えます。
例えば、アプリがユーザーのメールアドレスと名前(email name スコープ)をリクエストする場合、新規ユーザーが初回サインイン時に見る同意画面は次のようになります:
開発者ディスカッションは こちら を参照してください。
Apple コネクターのテスト
これで完了です。Apple コネクターは Web アプリとネイティブアプリの両方で利用できるはずです。 サインアップとサインインでソーシャルコネクターを有効化する のを忘れないでください。