跳过内容

Supabase Google Android 登录

本指南将帮助您在Android上将Google Sign-In与Supabase Authentication集成。假设您已经完成:

完整的实现可以在 example app的 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 登录,请参见 如何工作部分在 General Setup 指南.

有关完整的 code 参考,请参见 Complete Code Reference 部分在 General Setup 指南.

重要注意事项

重要注意事项

nonce 处理

nonce 处理

nonce 实现遵循 React Native Google Sign In 文档中的模式:

  • rawNonce 前往 Supabase signInWithIdToken()
  • Supabase 生成一个哈希值 rawNonce 并将其与 Google Sign-In 的 ID token 中的哈希值进行比较 nonceDigest (SHA-256 哈希值,16 进制编码)
  • nonceDigest 在 Google Sign-In API 中的参数 nonce 自动重试

如果 JWT 验证在第一次尝试时失败,则注销并重试一次

  • 这处理了缓存令牌可能具有错误的 nonce 的情况
  • 如果重试也失败,则返回错误
  • __CAPGO_KEEP_0__

故障排除

故障排除

如果认证失败:

  • 无效的受众: 确认在 Google Cloud Console 和 Supabase 中的 Google Client ID 匹配
  • Nonce 不匹配: 检查控制台日志 - 函数将自动重试,但如果需要,可以手动注销
  • 令牌验证失败: 确保您正在使用 mode: 'online' 在初始化调用中获取 idToken
  • 查看示例应用程序 __CAPGO_KEEP_0__ example app code for reference

从 Supabase Google Login on Android 中继续

Section titled “从 Supabase Google Login on Android 中继续”

如果您正在使用 Supabase Google Login on Android 来规划认证和账户流程,连接它到 使用 @capgo/capacitor-social-login 为在使用 @capgo/capacitor-social-login 中的原生能力 @capgo/capacitor-social-login 为 @capgo/capacitor-social-login 的实现细节 @capgo/capacitor-passkey 为 @capgo/capacitor-passkey 的实现细节 @capgo/capacitor-native-biometric for the implementation detail in @capgo/capacitor-native-biometric, and 双因素认证 双因素认证的实现细节