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; }; /**