跳过内容

Android Google Supabase 登录

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);
}

页面/区域:Capgo Builder / 原生云构建产品页面。角色:部分或页面标题。消息键 `native_build_how_it_works_title` (原生构建如何工作标题)。| 页面/区域:主页问题/解决方案部分。角色:短UI标签或导航项。见于:页面premium-support.astro。消息键 `ps_how_it_works` (Ps如何工作)。| 页面/区域:实时更新产品页面。角色:部分或页面标题。消息键 `live_update_how_it_works_title` (实时更新如何工作标题)。

如何工作

有关身份验证流程的详细说明,包括 nonce 生成、 JWT 验证和 Supabase 登录,请参见 如何工作部分在通用设置指南中.

For the complete code reference, see the 完成通用设置指南中的Code参考部分.

The nonce implementation follows the pattern from the React Native Google Sign In 文档:

  • rawNonce 跳转到 Supabase 的 signInWithIdToken()
  • Supabase 生成一个哈希值 rawNonce 并与 nonceDigest 在 Google Sign-In 中的 ID token 中包含的信息
  • nonceDigest (SHA-256 hash,16进制编码)将去往 nonce Google Sign-In API的参数

自动重试

自动重试

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

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

故障排除

故障排除

如果认证失败:

  • 无效的受众: 验证您的 Google Client IDs 在 Google Cloud Console 和 Supabase 中匹配
  • Nonce 匹配错误: 检查控制台日志 - 函数将自动重试,但如果需要,可以手动注销
  • Token 验证失败: 确保您使用 mode: 'online' 在 initialize 调用中使用
  • Review example app code 供参考

继续使用 Supabase Google Login on Android

标题:继续使用 Supabase Google Login on Android

如果您正在使用 使用 Supabase Google 登录 以规划认证和帐户流程,连接它 使用 @capgo/capacitor-social-login 使用@capgo/capacitor-social-login的原生能力。 使用 @capgo/capacitor-social-login 为 @capgo/capacitor 社交登录的实现细节 使用 @capgo/capacitor-passkey for the implementation detail in @capgo/capacitor-passkey, 使用 @capgo/capacitor-native-biometric for capgo/capacitor-native-biometric 的实现细节 双因素认证 为双因素认证的实现细节