From 77a18aadb331581accbbbb8d39cad69c3b0abb74 Mon Sep 17 00:00:00 2001 From: amalej Date: Sun, 23 Mar 2025 01:44:01 +0800 Subject: [PATCH] Added check to verify if auth emulator host is valid --- src/auth/auth-api-request.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/auth/auth-api-request.ts b/src/auth/auth-api-request.ts index cd9c145b1e..92d94e22eb 100644 --- a/src/auth/auth-api-request.ts +++ b/src/auth/auth-api-request.ts @@ -20,7 +20,7 @@ import * as validator from '../utils/validator'; import { App } from '../app/index'; import { FirebaseApp } from '../app/firebase-app'; import { deepCopy, deepExtend } from '../utils/deep-copy'; -import { AuthClientErrorCode, FirebaseAuthError } from '../utils/error'; +import { AuthClientErrorCode, FirebaseAuthError, FirebaseError } from '../utils/error'; import { ApiSettings, AuthorizedHttpClient, HttpRequestConfig, RequestResponseError, } from '../utils/api-request'; @@ -132,8 +132,15 @@ class AuthResourceUrlBuilder { */ constructor(protected app: App, protected version: string = 'v1') { if (useEmulator()) { + const authEmulatorHost = emulatorHost() + if (authEmulatorHost && authEmulatorHost.match(/https?:\/\//)) { + throw new FirebaseError({ + code: 'auth/invalid-emulator-host', + message: 'FIREBASE_AUTH_EMULATOR_HOST should not contain a protocol (http or https).', + }); + } this.urlFormat = utils.formatString(FIREBASE_AUTH_EMULATOR_BASE_URL_FORMAT, { - host: emulatorHost() + host: authEmulatorHost }); } else { this.urlFormat = FIREBASE_AUTH_BASE_URL_FORMAT;