跳过内容

Supabase Google 登录(Android)

GitHub

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

完整的实现可以在 示例应用的 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);
}

How It Works

How It Works

How It Works 了解详细的认证流程,包括 nonce 生成、 JWT 验证和 Supabase 登录,请参阅.

For the complete code reference, see the 完整的Code参考,请参阅.

完整的__CAPGO_KEEP_0__参考

重要注意事项

重要注意事项

nonce 处理

nonce 处理 Google Sign In 文档中的 nonce 实现模式:

  • rawNonce 前往 Supabase signInWithIdToken()
  • Supabase 生成一个哈希值 rawNonce 并将其与 ID 令牌中的 nonceDigest (SHA-256 哈希值,16 进制编码)
  • nonceDigest 从 Google Sign-In 中获取 nonce 参数传递给 Google Sign-In API

实现中包含自动重试逻辑:

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

故障排除

故障排除

如果认证失败:

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

继续使用 Supabase Google 登录(Android)

继续使用 Supabase Google 登录(Android)

如果您正在使用 Supabase Google 登录(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 中的实现细节 双因素认证 双因素认证的实现细节