firebase / firebase/firebase-admin-node

[FR] Support https scheme for auth emulator

Abierto
#2,606 0 comentarios 0 reacciones 0 asignados Ver en GitHub
type: feature request
Lenguaje dominante
TypeScript
Estrellas
1.7k
Forks
419
Merge medio
3 d 10 h
PR fusionados (30 d)
16

Descripción

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

```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.