firebase / firebase/firebase-admin-node

[FR] Support https scheme for auth emulator

Aperta
#2,606 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
type: feature request
Lingua principale
TypeScript
Stelle
1.7k
Fork
419
Merge medio
3g 10h
PR unite (30g)
16

Descrizione

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

```

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.