Skip to content

Commit ae9902c

Browse files
feat: add filterByAuthorizedAccounts parameter for Google sign-in and sign-up
1 parent 378d912 commit ae9902c

File tree

7 files changed

+36
-4
lines changed

7 files changed

+36
-4
lines changed

android/src/main/java/com/credentialsmanager/handlers/CredentialHandler.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,16 @@ class CredentialHandler(
126126
val nonce = googleParams?.getString("nonce") ?: ""
127127
val serverClientId = googleParams?.getString("serverClientId") ?: ""
128128
val autoSelectEnabled = googleParams?.getBoolean("autoSelectEnabled") ?: false
129+
// Default to true for sign-in (show only authorized accounts)
130+
val filterByAuthorizedAccounts = if (googleParams?.hasKey("filterByAuthorizedAccounts") == true) {
131+
googleParams.getBoolean("filterByAuthorizedAccounts")
132+
} else {
133+
true
134+
}
129135

130136
credentialOptions.add(
131137
getGoogleId(
132-
true,
138+
filterByAuthorizedAccounts,
133139
nonce,
134140
serverClientId,
135141
autoSelectEnabled,

android/src/newarch/java/com/credentialsmanager/CredentialsManagerModule.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,16 @@ class CredentialsManagerModule(
117117
val nonce = requestObject.getString("nonce") ?: ""
118118
val serverClientId = requestObject.getString("serverClientId") ?: ""
119119
val autoSelectEnabled = requestObject.getBoolean("autoSelectEnabled")
120+
// Default to false for sign-up (show all accounts)
121+
val filterByAuthorizedAccounts = if (requestObject.hasKey("filterByAuthorizedAccounts")) {
122+
requestObject.getBoolean("filterByAuthorizedAccounts")
123+
} else {
124+
false
125+
}
120126

121127
val googleIdOption =
122128
credentialHandler.getGoogleId(
123-
setFilterByAuthorizedAccounts = true,
129+
setFilterByAuthorizedAccounts = filterByAuthorizedAccounts,
124130
nonce = nonce,
125131
serverClientId = serverClientId,
126132
autoSelectEnabled = autoSelectEnabled,

android/src/oldarch/java/com/credentialsmanager/CredentialsManagerModule.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,16 @@ class CredentialsManagerModule(
138138
val nonce = requestObject.getString("nonce") ?: ""
139139
val serverClientId = requestObject.getString("serverClientId") ?: ""
140140
val autoSelectEnabled = requestObject.getBoolean("autoSelectEnabled")
141+
// Default to false for sign-up (show all accounts)
142+
val filterByAuthorizedAccounts = if (requestObject.hasKey("filterByAuthorizedAccounts")) {
143+
requestObject.getBoolean("filterByAuthorizedAccounts")
144+
} else {
145+
false
146+
}
141147

142148
val googleIdOption =
143149
credentialHandler.getGoogleId(
144-
setFilterByAuthorizedAccounts = false,
150+
setFilterByAuthorizedAccounts = filterByAuthorizedAccounts,
145151
nonce = nonce,
146152
serverClientId = serverClientId,
147153
autoSelectEnabled = autoSelectEnabled,
@@ -158,7 +164,7 @@ class CredentialsManagerModule(
158164
Log.d("CredentialManager", "NoCredentialException")
159165
val googleIdOption =
160166
credentialHandler.getGoogleId(
161-
setFilterByAuthorizedAccounts = false,
167+
setFilterByAuthorizedAccounts = filterByAuthorizedAccounts,
162168
nonce = nonce,
163169
serverClientId = serverClientId,
164170
autoSelectEnabled = autoSelectEnabled,
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
kotlin version: 2.0.21
2+
error message: The daemon has terminated unexpectedly on startup attempt #1 with error code: 0. The daemon process output:
3+
1. Kotlin compile daemon is ready
4+

example/src/App.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ export default function App() {
6161
googleSignIn: {
6262
serverClientId: WEB_CLIENT_ID,
6363
autoSelectEnabled: true,
64+
// Show only accounts that have previously authorized the app
65+
filterByAuthorizedAccounts: true,
6466
},
6567
appleSignIn: {
6668
requestedScopes: ['fullName', 'email'],
@@ -116,6 +118,8 @@ export default function App() {
116118
const credential = await signUpWithGoogle({
117119
serverClientId: WEB_CLIENT_ID,
118120
autoSelectEnabled: false,
121+
// Show all Google accounts on the device, not just authorized ones
122+
filterByAuthorizedAccounts: false,
119123
});
120124
if (credential.type === 'google-signin') {
121125
console.log('Google credentials:', {

src/NativeCredentialsManager.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ type GoogleSignInParams = {
3030
nonce: string;
3131
serverClientId: string;
3232
autoSelectEnabled: boolean;
33+
filterByAuthorizedAccounts?: boolean;
3334
};
3435

3536
export type GoogleCredential = {

src/index.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ type GoogleSignInParams = {
1313
nonce?: string;
1414
serverClientId: string;
1515
autoSelectEnabled?: boolean;
16+
filterByAuthorizedAccounts?: boolean;
1617
};
1718

1819
type AppleSignInParams = {
@@ -70,6 +71,7 @@ export function signIn<T extends readonly SignInOption[]>(
7071
serverClientId: string;
7172
nonce: string;
7273
autoSelectEnabled: boolean;
74+
filterByAuthorizedAccounts: boolean;
7375
};
7476
appleSignIn?: {
7577
nonce: string;
@@ -84,6 +86,8 @@ export function signIn<T extends readonly SignInOption[]>(
8486
serverClientId: params.googleSignIn?.serverClientId ?? '',
8587
nonce: params.googleSignIn?.nonce ?? '',
8688
autoSelectEnabled: params.googleSignIn?.autoSelectEnabled ?? true,
89+
filterByAuthorizedAccounts:
90+
params.googleSignIn?.filterByAuthorizedAccounts ?? true,
8791
};
8892
}
8993

@@ -118,6 +122,7 @@ export function signUpWithGoogle(
118122
...params,
119123
nonce: params.nonce ?? '',
120124
autoSelectEnabled: params.autoSelectEnabled ?? true,
125+
filterByAuthorizedAccounts: params.filterByAuthorizedAccounts ?? false,
121126
});
122127
}
123128

0 commit comments

Comments
 (0)