Supabase Google Android にログイン
このガイドは、Android で Google サインインと Supabase 認証を統合するのに役立ちます。以下をすでに完了していることを前提としています。
完全な実装は、サンプル アプリの supabaseAuthUtils.ts ファイルで入手できます。このガイドでは、主要な概念とその使用方法について説明します。
認証ヘルパーの使用
Section titled “認証ヘルパーの使用”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);}nonce 生成、JWT 検証、Supabase サインインなど、認証フローの仕組みの詳細については、一般セットアップ ガイドの仕組みセクション を参照してください。
完全なコード リファレンスについては、一般セットアップ ガイドの完全なコード リファレンス セクション を参照してください。
重要な注意事項
Section titled “重要な注意事項”nonce の実装は、React Native Google サインイン ドキュメント のパターンに従います。
rawNonceは Supabase のsignInWithIdToken()に移動します- Supabase は
rawNonceのハッシュを作成し、Google サインインからの ID トークンに含まれるnonceDigestと比較します。 nonceDigest(SHA-256 ハッシュ、16 進エンコード) は、Google サインイン API のnonceパラメーターに送られます。
実装には自動再試行ロジックが含まれています。
- JWT 検証が最初の試行で失敗した場合、ログアウトして 1 回再試行します
- これは、キャッシュされたトークンに不正な nonce が含まれる可能性がある場合に対処します。
- リトライも失敗した場合はエラーが返されます。
トラブルシューティング
Section titled “トラブルシューティング”認証が失敗した場合:
- 無効な対象者: Google クライアント ID が Google Cloud Console と Supabase の両方で一致していることを確認してください。
- ノンスが一致しません: コンソール ログを確認してください - 関数は自動的に再試行されますが、必要に応じて最初に手動でログアウトできます。
- トークンの検証が失敗します: idToken を取得するための初期化呼び出しで
mode: 'online'を使用していることを確認してください。 - 参考として サンプル アプリ コード を確認してください。