firebase / firebase/firebase-admin-node

[FR] Support https scheme for auth emulator

Offen
#2,606 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
type: feature request
Vorherrschende Sprache
TypeScript
Sterne
1.7k
Forks
419
Ø Merge
3 T. 10 Std.
Gemergte PRs (30 T.)
16

Beschreibung

**Is your feature request related to a problem? Please describe.**
We're running our emulator suite over https. The `auth-api-requests.ts` is forcing the scheme `http://` which results we're not able to call our emulator suite.

**Describe the solution you'd like**
I would like to support `https` by introducing a new environment variable `FIREBASE_AUTH_EMULATOR_SCHEME` which will default to `http`, but when set it would use that scheme. Other solution would be that we can change the format itself.

**Describe alternatives you've considered**
We now local patched the JS file to change the format.

**Additional context**

## Current
**auth-api-request.ts**
```typescript
/** Firebase Auth base URlLformat when using the auth emultor. */
const FIREBASE_AUTH_EMULATOR_BASE_URL_FORMAT =
'http://{host}/identitytoolkit.googleapis.com/{version}/projects/{projectId}{api}';
```

## Proposed
```typescript
/** Firebase Auth base URlLformat when using the auth emultor. */
const FIREBASE_AUTH_EMULATOR_BASE_URL_FORMAT =
'{scheme}://{host}/identitytoolkit.googleapis.com/{version}/projects/{projectId}{api}';

class AuthResourceUrlBuilder {

protected urlFormat: string;
private projectId: string;

/**
* The resource URL builder constructor.
*
* @param projectId - The resource project ID.
* @param version - The endpoint API version.
* @constructor
*/
constructor(protected app: App, protected version: string = 'v1') {
if (useEmulator()) {
this.urlFormat = utils.formatString(FIREBASE_AUTH_EMULATOR_BASE_URL_FORMAT, {
host: emulatorHost(),
scheme: emulatorScheme() || 'http'
});
} else {
this.urlFormat = FIREBASE_AUTH_BASE_URL_FORMAT;
}
}

// ......
}

function emulatorHost(): string | undefined {
return process.env.FIREBASE_AUTH_EMULATOR_HOST
}

function emulatorScheme(): string | undefined {
return process.env.FIREBASE_AUTH_EMULATOR_SCHEME
}

```

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.