From 9474fb3c671208c503d183e9bf1bbaec7b40a59d Mon Sep 17 00:00:00 2001 From: Mike Pitre <12040919+mikepitre@users.noreply.github.com> Date: Wed, 17 Jun 2026 17:28:04 -0400 Subject: [PATCH] feat(expo): add iOS Google sign-in hint --- .changeset/bright-google-docs.md | 5 +++++ .../expo/ios/ClerkGoogleSignInModule.swift | 5 +---- .../google-one-tap/ClerkGoogleOneTapSignIn.ts | 3 ++- packages/expo/src/google-one-tap/types.ts | 21 +++++++++++++++++-- 4 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 .changeset/bright-google-docs.md diff --git a/.changeset/bright-google-docs.md b/.changeset/bright-google-docs.md new file mode 100644 index 00000000000..f27f7a6f712 --- /dev/null +++ b/.changeset/bright-google-docs.md @@ -0,0 +1,5 @@ +--- +'@clerk/expo': patch +--- + +Adds an iOS Google sign-in `hint` option and clarifies that Android account filtering is platform-specific. diff --git a/packages/expo/ios/ClerkGoogleSignInModule.swift b/packages/expo/ios/ClerkGoogleSignInModule.swift index d9484c50127..5cc8fe13546 100644 --- a/packages/expo/ios/ClerkGoogleSignInModule.swift +++ b/packages/expo/ios/ClerkGoogleSignInModule.swift @@ -59,10 +59,7 @@ public class ClerkGoogleSignInModule: Module { return } - let filterByAuthorized = params?["filterByAuthorizedAccounts"] as? Bool ?? false - let hint: String? = filterByAuthorized - ? GIDSignIn.sharedInstance.currentUser?.profile?.email - : nil + let hint = params?["hint"] as? String let nonce = params?["nonce"] as? String GIDSignIn.sharedInstance.signIn( diff --git a/packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts b/packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts index 9e562bc4f79..b0a1cd5e42f 100644 --- a/packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts +++ b/packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts @@ -85,7 +85,8 @@ export const ClerkGoogleOneTapSignIn = { * * @param params - Sign-in parameters * @param params.nonce - Cryptographic nonce for replay protection - * @param params.filterByAuthorizedAccounts - Only show previously authorized accounts (default: true) + * @param params.filterByAuthorizedAccounts - Android only. Filter to previously authorized accounts. + * @param params.hint - iOS only. Hint for Google Sign-In. * * @returns Promise resolving to OneTapResponse */ diff --git a/packages/expo/src/google-one-tap/types.ts b/packages/expo/src/google-one-tap/types.ts index 7133fc1be46..816114a83f9 100644 --- a/packages/expo/src/google-one-tap/types.ts +++ b/packages/expo/src/google-one-tap/types.ts @@ -41,11 +41,28 @@ export type SignInParams = { nonce?: string; /** - * Whether to filter credentials to only show accounts that have been - * previously authorized for this app. + * Android only. Whether to filter credentials to only show accounts that have + * previously authorized this app. + * + * No-op on iOS. + * + * @platform Android * @default true */ filterByAuthorizedAccounts?: boolean; + + /** + * iOS only. Hint passed to Google Sign-In, such as a user ID or email + * address. + * + * This may prefill or prioritize an account when possible, but does not + * restrict the account picker. + * + * No-op on Android. + * + * @platform iOS + */ + hint?: string; }; /**