コンテンツへスキップ

Supabase Apple Login - iOS設定

このガイドでは、iOSでSupabase認証を用いたAppleサインインを統合する方法を説明します。以下の手順を既に完了していることを前提としています:

完全な実装は、サンプルアプリのsupabaseAuthUtils.tsファイルで利用可能です。このガイドでは、主要な概念と使用方法について説明します。

authenticateWithAppleSupabase関数は、認証フロー全体を処理します:

import { authenticateWithAppleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithAppleSupabase();
if (result.success) {
console.log('サインイン:', result.user);
// 認証されたエリアに移動
} else {
console.error('エラー:', result.error);
}

iOSでは、Appleサインインはネイティブ実装を使用します:

  1. 初期化: プラグインはアプリのバンドルIDを自動的に使用します(clientIdは不要)
  2. ネイティブサインイン: AppleのネイティブなSign in with Appleボタンと認証フローを使用
  3. IDトークン: Appleはユーザー情報を含むIDトークン(JWT)を返します
  4. Supabase認証: IDトークンはsignInWithIdToken()を使用してSupabaseに送信されます

ヘルパー関数は自動的にiOSプラットフォームを検出し、すべてを適切に設定します。

  • iOSはAppleサインインのためにアプリのバンドルIDを自動的に使用します
  • バンドルIDがApple Developer Portalで設定されているものと一致することを確認してください
  • バンドルIDには「Sign in with Apple」機能が有効になっている必要があります

Supabaseで、Appleプロバイダーを以下のように設定してください:

  • クライアントID: iOSアプリID(バンドルID) - 例: app.capgo.plugin.SocialLogin

Android/Webも使用している場合は、SupabaseのクライアントIDフィールドにアプリIDとサービスIDの両方を提供する必要があります(カンマ区切り)。

認証に失敗した場合:

  • バンドルIDの不一致: XcodeとApple Developer Portalの両方でバンドルIDが一致することを確認
  • 機能が有効になっていない: Xcodeで「Sign in with Apple」機能が有効になっていることを確認
  • Supabase設定: SupabaseのAppleプロバイダー設定でアプリIDが正しく設定されていることを確認
  • トークン検証の失敗: AppleからIDトークンが受信されていることを確認
  • リファレンスについては、サンプルアプリコードを確認