firebase / firebase/firebase-admin-node

[FR] Support https scheme for auth emulator

Ouverte
#2,606 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
type: feature request
Langage dominant
TypeScript
Étoiles
1.7k
Forks
419
Merge moyen
3 j 10 h
PR mergées (30 j)
16

Description

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

```

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez dans auth-api-requests.ts et examinez AuthResourceUrlBuilder, FIREBASE_AUTH_EMULATOR_BASE_URL_FORMAT ainsi que la gestion existante de FIREBASE_AUTH_EMULATOR_HOST. Confirmez comment l’URL de l’émulateur est assemblée, puis vérifiez que FIREBASE_AUTH_EMULATOR_SCHEME est défini sur http par défaut et prend en charge https lorsqu’il est défini.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
firebase, nodejs, typescript
Domaine
authentication
Type d'issue
Fonctionnalité
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
55/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.