Skip to content

Commit f587178

Browse files
committed
Address feedback, cleanup endpoint check
1 parent 7f850fc commit f587178

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

packages/auth/src/api/index.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,15 @@ export const enum Endpoint {
7474
REVOKE_TOKEN = '/v2/accounts:revokeToken'
7575
}
7676

77+
const CookieAuthProxiedEndpoints: Array<string> = [
78+
Endpoint.SIGN_IN_WITH_CUSTOM_TOKEN,
79+
Endpoint.SIGN_IN_WITH_EMAIL_LINK,
80+
Endpoint.SIGN_IN_WITH_IDP,
81+
Endpoint.SIGN_IN_WITH_PASSWORD,
82+
Endpoint.SIGN_IN_WITH_PHONE_NUMBER,
83+
Endpoint.TOKEN,
84+
];
85+
7786
export const enum RecaptchaClientType {
7887
WEB = 'CLIENT_TYPE_WEB',
7988
ANDROID = 'CLIENT_TYPE_ANDROID',
@@ -266,15 +275,16 @@ export function _getFinalTarget(
266275
): string {
267276
const base = `${host}${path}?${query}`;
268277

269-
const finalTarget = (auth as AuthInternal).config.emulator
278+
const authInternal = auth as AuthInternal;
279+
const finalTarget = authInternal.config.emulator
270280
? _emulatorUrl(auth.config as ConfigInternal, base)
271281
: `${auth.config.apiScheme}://${base}`;
272282

273283
// TODO get the exchange URL from the persistence method
274284
// don't use startsWith v1/accounts...
275285
if (
276-
(auth as AuthInternal)._getPersistence() === PersistenceType.COOKIE &&
277-
(path.startsWith('/v1/accounts:signIn') || path === Endpoint.TOKEN)
286+
authInternal._getPersistence() === PersistenceType.COOKIE &&
287+
CookieAuthProxiedEndpoints.includes(path)
278288
) {
279289
const params = new URLSearchParams({ finalTarget });
280290
return `${window.location.origin}/__cookies__?${params.toString()}`;

packages/auth/src/core/persistence/persistence_user_manager.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,10 @@ export class PersistenceUserManager {
7474
return null;
7575
}
7676
if (typeof blob === 'string') {
77-
const response = await getAccountInfo(this.auth, { idToken: blob });
77+
const response = await getAccountInfo(this.auth, { idToken: blob }).catch(() => undefined);
78+
if (!response) {
79+
return null;
80+
}
7881
return UserImpl._fromGetAccountInfoResponse(this.auth, response, blob);
7982
}
8083
return UserImpl._fromJSON(this.auth, blob);
@@ -154,7 +157,10 @@ export class PersistenceUserManager {
154157
if (blob) {
155158
let user: UserInternal;
156159
if (typeof blob === 'string') {
157-
const response = await getAccountInfo(auth, { idToken: blob });
160+
const response = await getAccountInfo(auth, { idToken: blob }).catch(() => undefined);
161+
if (!response) {
162+
break;
163+
}
158164
user = await UserImpl._fromGetAccountInfoResponse(
159165
auth,
160166
response,

0 commit comments

Comments
 (0)