Supabase Google 登录 Android
本指南将帮助您将 Google 登录与 Android 上的 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);}它是如何工作的
Section titled “它是如何工作的”有关身份验证流程工作原理(包括随机数生成、JWT 验证和 Supabase 登录)的详细说明,请参阅常规设置指南中的工作原理部分。
有关完整的代码参考,请参阅常规设置指南中的完整代码参考部分。
nonce 实现遵循 React Native Google 登录文档 中的模式:
rawNonce转到 Supabase 的signInWithIdToken()- Supabase 对
rawNonce进行哈希处理,并将其与nonceDigest进行比较,该nonceDigest包含在 Google 登录的 ID 令牌中 nonceDigest(SHA-256 哈希,十六进制编码)转到 Google 登录 API 中的nonce参数
该实现包括自动重试逻辑:
- 如果 JWT 验证在第一次尝试时失败,则会注销并重试一次
- 这可以处理缓存的令牌可能具有不正确的随机数的情况
- 如果重试也失败,则返回错误
如果认证失败:
- 无效受众群体:验证您的 Google 客户端 ID 在 Google Cloud Console 和 Supabase 中是否匹配
- Nonce 不匹配:检查控制台日志 - 该功能会自动重试,但如果需要,您可以先手动注销
- 令牌验证失败:确保您在初始化调用中使用
mode: 'online'来获取 idToken - 查看示例应用程序代码以供参考