CapgoのSupabase Google Login on iOS
インストール手順とこのプラグインの全マークダウンガイドを含む設定プロンプトをコピーする
このガイドでは、iOSでGoogle Sign-InをSupabase Authenticationに統合する方法を説明します。Google Login iOSのセットアップが完了していることを前提としています。
- the the
- the サプバース Google ログイン - 一般設定.
実装
実装実装の詳細は、 例のアプリの supabaseAuthUtils.ts ファイルにあります。このガイドでは、主な概念とその使用方法を説明します。
認証ヘルパーの使用
認証ヘルパーThe authenticateWithGoogleSupabase コピー
import { authenticateWithGoogleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithGoogleSupabase();if (result.success) { console.log('Signed in:', result.user); // Navigate to your authenticated area} else { console.error('Error:', result.error);}コンテキスト: Capgo ビルダー / ネイティブ クラウド ビルド プロダクト ページ。役割: セクションまたはページ ヘッダー。メッセージ キー `native_build_how_it_works_title` (ネイティブ ビルドの機能の仕組みのタイトル)。 | ページ/エリア: ホームページの問題/解決セクション。役割: 短い UI ラベルまたはナビゲーション アイテム。見つける: page premium-support.astro。メッセージ キー `ps_how_it_works` (PS の機能の仕組み)。 | ページ/エリア: ライブ アップデート プロダクト ページ。役割: セクションまたはページ ヘッダー。メッセージ キー `live_update_how_it_works_title` (ライブ アップデートの機能の仕組みのタイトル)。
「しくみ」Google Sign-Inの認証フローについての詳細な説明は、nonceの生成、JWTの検証、Supabaseのサインインについては、 General Setupのガイドの「How It Works」セクションを参照してください.
注意事項
重要な注意事項iOS トークンキャッシュと非接続問題
iOS トークンキャッシュとナンス問題iOS Nonce キャッシュ問題
iOSでは、Google Sign-Inがトークンをキャッシュすることがあり、これがnonceの検証を失敗させる可能性があります。この validateJWTToken functionはこれを自動的に処理します:
- オートメーション検出: nonceがトークンと予想どおりのものであるかどうかをチェックします
nonceDigest - 自動再試行: 認証が失敗した場合、自動的に Google からログアウトし、再試行します
- エラー処理: 再試行も失敗した場合、エラーが返されます
なぜこれが起こるか: iOS Google Sign-In SDK はパフォーマンスのためにトークンをキャッシュします。キャッシュされたトークンが返された場合、生成されたトークンと一致しないnonce (またはnonce がない) が原因で一致しない可能性があります。
解決策: この実装は自動的にこの問題を処理し、ログアウトして再試行することで、Google が正しいnonce で新しいトークンを生成するように強制します。
手動の回避策 : (自動再試行が機能しない場合)
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();これにより、正しいnonce で新しいトークンが取得されます
完全なcodeのリファレンスについては、 完全なCodeリファレンスセクションを参照してください。.
重要な注意事項
「重要な注意事項」というセクションNonceの取り扱い
「Nonceの取り扱い」というセクションnonceの実装は、React Native Google Sign Inのドキュメントから Supabaseの:
rawNonceSupabaseはsignInWithIdToken()- をハッシュ化し、
rawNonceと比較します。nonceDigestIDトークンからGoogle Sign-Inで含まれる nonceDigestSHA-256ハッシュ(16進数エンコード)が、nonceGoogle Sign-In APIのパラメータ
自動リトライメカニズム
自動リトライメカニズムこの authenticateWithGoogleSupabase 関数には、 retry 最初の呼び出し(
- コンテキスト:Capgo Builder / ネイティブクラウドビルド製品ページ。役割:短いUIラベルまたはナビゲーションアイテム。メッセージキー`native_build_builder_credit_first`(ネイティブビルドビルダークレジットファースト)。
retry=false): バリデーションが失敗した場合、自動的にログアウトし、再試行する - 再試行呼び出し(
retry=true): バリデーションが失敗した場合、直ちにエラーを返す
iOSのトークンキャッシュ問題を自動的に処理します。
トラブルシューティング
トラブルシューティング認証が失敗した場合:
- Nonce の一致性が不正:自動的にリトライします - 詳細はコンソールログを確認してください。続行しても解決しない場合は、手動でログアウトしてください
- 無効な受信者:Google Cloud ConsoleとSupabase(両方のiOSとWebクライアントID)でGoogle Client IDが一致していることを確認してください
- トークン検証が失敗:initialize呼び出しでidTokenを取得するようにしてください
mode: 'online'Info.plistの設定 - :Info.plistに正しいURLスキームとGIDClientIDが設定されていることを確認してください__CAPGO_KEEP_0__
- レビューを example app code for reference
iOS用のSupabase Google Loginから続けて
Section titled “iOS用のSupabase Google Loginから続けて”Supabase Google Login on iOSを使用している場合 Supabase Google Login on iOSを使用して 認証とアカウントフローの計画に使用している場合、iOS用のSupabase Google Loginを接続して Capgoで@capgo/capacitor-social-loginを使用します。 for the native capability in Using @capgo/capacitor-social-login @capgo/capacitor-ソーシャルログイン for the implementation detail in @capgo/capacitor-social-login @capgo/capacitor-パスキー @capgo/capacitor-passkeyの実装詳細について @capgo/capacitor-native-biometric @capgo/capacitor-native-biometricの実装詳細について 2要素認証 2要素認証の実装詳細について