コンテンツへスキップ

Supabase Google Android にログイン

このガイドは、Android で Google サインインと Supabase 認証を統合するのに役立ちます。以下をすでに完了していることを前提としています。

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

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 サインインなど、認証フローの仕組みの詳細については、一般セットアップ ガイドの仕組みセクション を参照してください。

完全なコード リファレンスについては、一般セットアップ ガイドの完全なコード リファレンス セクション を参照してください。

nonce の実装は、React Native Google サインイン ドキュメント のパターンに従います。

  • rawNonce は Supabase の signInWithIdToken() に移動します
  • Supabase は rawNonce のハッシュを作成し、Google サインインからの ID トークンに含まれる nonceDigest と比較します。
  • nonceDigest (SHA-256 ハッシュ、16 進エンコード) は、Google サインイン API の nonce パラメーターに送られます。

実装には自動再試行ロジックが含まれています。

  • JWT 検証が最初の試行で失敗した場合、ログアウトして 1 回再試行します
  • これは、キャッシュされたトークンに不正な nonce が含まれる可能性がある場合に対処します。
  • リトライも失敗した場合はエラーが返されます。

認証が失敗した場合:

  • 無効な対象者: Google クライアント ID が Google Cloud Console と Supabase の両方で一致していることを確認してください。
  • ノンスが一致しません: コンソール ログを確認してください - 関数は自動的に再試行されますが、必要に応じて最初に手動でログアウトできます。
  • トークンの検証が失敗します: idToken を取得するための初期化呼び出しで mode: 'online' を使用していることを確認してください。
  • 参考として サンプル アプリ コード を確認してください。