Appleログイン
インストール手順とこのプラグインのフル マークダウン ガイドを含むセットアップ コマンドをコピーします。
前提条件
「前提条件」というセクションこのガイドでは、Android で Apple Sign-In と Supabase Authentication を統合する方法を説明します。既に次のことを完了していることを前提としています:
- the Appleサインイン - 一般設定.
ステップ 1: バックエンド エッジ関数をデプロイする
ステップ 1: バックエンド エッジ関数をデプロイする最初に、Apple OAuthコールバックを処理するためのSupabase Edge Functionをデプロイする必要があります。
-
プロジェクトディレクトリに移動してください
ターミナル cd your-project/supabase -
エッジ関数を作成 (if it doesn’t exist)
ターミナル画面 supabase functions new apple-signin-callback -
エッジ関数codeをコピー
エッジ関数の実装は サンプルアプリ.
プロジェクトに以下のファイルをコピーしてください:
supabase/functions/apple-signin-callback/index.ts- メインエッジ関数codesupabase/functions/apple-signin-callback/deno.json- ライブラリ依存関係のインポートマップ(JWT署名用のjoseライブラリを含む)
-
JWT検証の設定
Apple OAuthコールバックエンドは、Appleがリダイレクトするため、パブリックでなければなりません (認証が必要ありません)。
supabase/config.tomlfile:[functions.apple-signin-callback]enabled = trueverify_jwt = false # Important: Set to false for public OAuth callbackimport_map = "./functions/apple-signin-callback/deno.json"entrypoint = "./functions/apple-signin-callback/index.ts" -
関数をデプロイ
ターミナル画面 supabase functions deploy apple-signin-callback -
関数の URL を取得
デプロイ後、URL のようになります。
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback__CAPGO_KEEP_0__
- __CAPGO_KEEP_1__
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - __CAPGO_KEEP_2__
apple-signin-callback__CAPGO_KEEP_3__
- __CAPGO_KEEP_1__
__CAPGO_KEEP_8__
__CAPGO_KEEP_9____CAPGO_KEEP_10__
-
Cloudflareのエッジ関数URLがStep 1で取得したものであることを確認してください。Apple Developer PortalでReturn URLを設定するには必要です。
Apple Developer PortalでReturn URLを設定するには、Step 1で取得したCloudflareのエッジ関数URLが必要です。 Apple Login Androidのセットアップガイドを参照してください。 Apple Login Androidのセットアップガイドを完了してください。
- Apple Login Androidのセットアップガイドを完了してください。
- Service IDを作成する
- Apple Developer Portalで.p8ファイルを生成するためのプライベートキーを作成する
- Team IDとKey IDを取得する
-
Apple Developer PortalでReturn URLを設定する
Apple Developer PortalでReturn URLを設定する際に、Cloudflareのエッジ関数URLを使用してください。
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback__CAPGO_KEEP_1__
注意: __CAPGO_KEEP_2__ __CAPGO_KEEP_3____CAPGO_KEEP_4__ __CAPGO_KEEP_5__ __CAPGO_KEEP_6__
-
必要な値をすべて収集
Apple設定ガイドを完了した後、以下の値を持っているはずです。
- APPLE_TEAM_IDApple Developer Team ID
- APPLE_KEY_IDApple Developer Portal から取得する Key ID
- APPLE_PRIVATE_KEYApple Developer Portal から取得する .p8 秘密鍵ファイル(base64 エンコードが必要)
- ANDROID_SERVICE_IDApple Service ID(例えば
com.example.app.service) - BASE_REDIRECT_URL: URLを指定してください (例えば、
capgo-demo-app://path)
セクション「Step 3: Supabase Secrets」
Section titled “Step 3: Set Supabase Secrets”Now we need to configure the environment variables (secrets) for the Supabase Edge Function.
-
秘密鍵をエンコードしてください
最初に、Appleの秘密鍵(.p8ファイル)をbase64にエンコードしてください:
ターミナル画面 base64 -i AuthKey_XXXXX.p8コピーする内容は、1つの長い文字列です。
-
SupabaseのCLIでシークレットを設定してください
ターミナル画面 supabase secrets set APPLE_TEAM_ID=your_team_idsupabase secrets set APPLE_KEY_ID=your_key_idsupabase secrets set APPLE_PRIVATE_KEY=your_base64_encoded_keysupabase secrets set ANDROID_SERVICE_ID=your.service.idsupabase secrets set BASE_REDIRECT_URL=your-app://pathsupabase secrets set APPLE_REDIRECT_URI=https://your-project-ref.supabase.co/functions/v1/apple-signin-callback -
代替: Supabase ダッシュボードでシークレットを設定
ダッシュボードを使用する場合は
- CapgoアカウントのSupabaseプロジェクトダッシュボードに移動
- に移動してください Edge Functions → 設定 → シークレット
- 各シークレット変数と値を追加してください
Step 4: Authentication Helperを使用する
Step 4: Authentication HelperNow you can use the authentication helper in your app code.
実装 例のアプリの supabaseAuthUtils.ts ファイル。
認証ヘルパーを使用する
「認証ヘルパーを使用する」のセクションimport { authenticateWithAppleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithAppleSupabase();if (result.success) { console.log('Signed in:', result.user); // Navigate to your authenticated area} else { console.error('Error:', result.error);}ヘルパー関数を更新する
「ヘルパー関数を更新する」のセクションヘルパー関数を使用する場合、 authenticateWithAppleSupabase 次の値を、設定に合わせて更新する必要があります: 更新 Copy to clipboard
-
Update the Helper Function
redirectUrl- Supabase エッジ関数 URL に設定してください:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
更新
clientId- Apple サービス ID に設定してください:await SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
complete implementation See the __CAPGO_KEEP_0__ complete implementation for reference.
Step 5: テストの統合
Step 5: テストの統合のセクション-
Androidアプリをビルドして実行
ターミナル画面 npx cap sync androidnpx cap run android -
認証フローのテスト
- 「Appleでサインイン」をタップ
- Apple OAuth画面がブラウザで表示されるはずです
- 認証後、ブラウザから戻ってきます
- コンソールログを確認してエラーがないか
-
フローの検証
The complete flow should be:
- ユーザーが「Appleでサインイン」をタップします。
- アプリがApple OAuthのブラウザを開きます。
- ユーザーがAppleで認証します。
- Appleがリダイレクトします:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Edge関数がcodeをトークンに交換します。
- Edge関数がリダイレクトします:
your-app://path?id_token=...&access_token=... - Androidアプリがデープリンクを受け取り、アイデンティティトークンを処理します。
- アプリがアイデンティティトークンでSupabaseにサインインします。
トラブルシューティング
トラブルシューティング認証が失敗した場合:
- リダイレクト URI の不一致: Apple Developer Portal の Return URL が正確に一致していることを確認してください
APPLE_REDIRECT_URI秘密 - デープ リンクが機能しない: 以下を確認してください
AndroidManifest.xmlintent フィルターがあなたのBASE_REDIRECT_URL - シークレットが欠落している: 以下のシークレットが正しく設定されていることを確認してください
supabase secrets list - トークン エクスチェンジが失敗: Supabase ダッシュボードのエッジ関数ログを確認して詳細なエラーメッセージを確認してください
- アプリがコールバックを受け取っていない: 確認してください
onNewIntentMainActivityに正しく実装されています - Review the 例としてはcodeのアプリを参照してください 参考として
How It Works
「How It Works」というセクションAndroidでは、Apple Sign-InはOAuthリダイレクトフローを使用します:
- Initialization: プラグインはService IDとバックエンドのリダイレクトURLで初期化されます
- OAuth Flow: ブラウザ/Chrome Custom TabでAppleのOAuthページを開きます
- バックエンドのコールバック: Appleをリダイレクトして、Supabase Edge Functionに認証code
- Token Exchange: エッジ関数は、Appleのトークンエンドポイントを使用してcodeをトークンに交換します
- Deep Link Redirect: エッジ関数は、アイデンティティトークンを含めてアプリに戻ります
- Supabase Authentication: アプリはトークンを受け取り、Supabaseにサインインします
This flowは必要です。なぜなら、AppleはSign in with AppleのネイティブAndroidサポートを提供していないからです。
Keep going from Supabase Apple Login on Android
Section titled “Keep going from Supabase Apple Login on Android”If you are using Supabase Apple Login on Android 認証とアカウントフローの計画に役立つ機能です。__CAPGO_KEEP_0__/__CAPGO_KEEP_1__と接続してください。 Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login @capgo/capacitor-social-login for the implementation detail in @capgo/capacitor-social-login, @capgo/capacitor-passkey for the implementation detail in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric for the implementation detail in @capgo/capacitor-native-biometric, and 2要素認証 2要素認証の実装詳細