跳过内容

Supabase Google Android 登录

GitHub

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

完整的实施可在 示例应用程序中找到 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);
}

有关身份验证流程的详细说明,包括 nonce 生成、 JWT 验证和 Supabase 登录,请参见《通用设置指南》中的 有关完整__CAPGO_KEEP_0__参考,请参见《通用设置指南》中的.

完整code参考 Complete Code Reference section in the General Setup guide.

重要注意事项

重要注意事项

随机数处理

随机数处理

Capgo 的 nonce 实现遵循来自 React Native Google Sign In 文档的模式 跳转到 Supabase:

  • rawNonce Supabase 生成一个哈希值 signInWithIdToken()
  • 并与 rawNonce 从 Google Sign-In 中的 ID 令牌中获取 nonceDigest SHA-256 哈希值(16 进制编码)
  • nonceDigest 参数在 Google Sign-In API 中 nonce __CAPGO_KEEP_0__

自动重试

自动重试

实现包括自动重试逻辑:

  • 如果 JWT 验证在第一次尝试时失败,它会注销并尝试一次
  • 这处理了缓存令牌可能具有错误的 nonce 的情况
  • 如果重试也失败,则返回错误

故障排除

故障排除

如果认证失败:

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

标题:从 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 用于@capgo/capacitor-native-biometric的实现细节 两因素认证 用于两因素认证的实现细节