Password policy violation is reported as `auth/internal-error` instead of a specific error code
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 85/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- firebase, node.js, typescript
- Domaine
- authentication
Piste de recherche
Commencez dans src/auth/error.ts en lisant AUTH_SERVER_TO_CLIENT_CODE, l’entrée AuthErrorCode et FirebaseAuthError.fromServerError. Testez le mapping avec la chaîne PASSWORD_DOES_NOT_MEET_REQUIREMENTS fournie. C’est terminé lorsque createUser, updateUser et le mapping direct renvoient auth/password-does-not-meet-requirements tout en conservant le message concernant les exigences manquantes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
[REQUIRED] Step 2: Describe your environment
- Operating System version: macOS 15.7.7 (local), Cloud Functions Node.js 20 runtime (production)
- Firebase SDK version: firebase-admin 13.8.0 (also reproduced on 14.5.0)
- Firebase Product: auth
- Node.js version: 20.19.2
- NPM version: 10.8.2
[REQUIRED] Step 3: Describe the problem
Steps to reproduce:
With a password policy in Require (ENFORCE) mode, auth().createUser() or updateUser() with a non-compliant password rejects with auth/internal-error, not a specific error code.
The server returns PASSWORD_DOES_NOT_MEET_REQUIREMENTS, but that code is missing from AUTH_SERVER_TO_CLIENT_CODE in src/auth/error.ts. FirebaseAuthError.fromServerError therefore falls back to INTERNAL_ERROR. Callers can't tell this user-input error from a real internal error without parsing the message. The client SDK already uses auth/password-does-not-meet-requirements for the same case.
- Enable a password policy in Require mode, e.g. minimum length 10.
- Call
createUserwith a password that doesn't meet it.
Actual: code is auth/internal-error, and the server code only appears in the message:
Missing password requirements: [Password must contain at least 10 characters, Password must contain a lower case character, Password must contain an upper case character] Raw server response: "{"error":{"code":400,"message":"PASSWORD_DOES_NOT_MEET_REQUIREMENTS : Missing password requirements: [...]","errors":[...]}}"
Expected: a specific code, e.g. auth/password-does-not-meet-requirements to match the client SDK, keeping the missing-requirements message.
Suggested fix: add PASSWORD_DOES_NOT_MEET_REQUIREMENTS to AUTH_SERVER_TO_CLIENT_CODE, with a matching AuthErrorCode entry, in src/auth/error.ts.
Relevant Code:
const { getAuth, FirebaseAuthError } = require("firebase-admin/auth");
// Against a project with a password policy in Require mode:
try {
await getAuth().createUser({ email: "[email protected]", password: "weakpass" });
} catch (err) {
console.log(err.code); // "auth/internal-error"
}
// Same mapping, without a project:
const err = FirebaseAuthError.fromServerError(
"PASSWORD_DOES_NOT_MEET_REQUIREMENTS : Missing password requirements: [Password must contain at least 10 characters]"
);
console.log(err.code); // "auth/internal-error", expected "auth/password-does-not-meet-requirements"
- Langage dominant
- TypeScript
- Étoiles
- 1.7k
- Forks
- 423
- Merge moyen
- 1 j 54 min
- PR mergées (30 j)
- 16
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de firebase/firebase-admin-node
-
FCM: send()/sendEachForMulticast() with `fid` return NotRegistered for a FID that Console delivers to at the same momentPeut-être pris @Doris-Ge l’a pris il y a 1 jour. Ouverteapi: messaging
Difficulté 4/5 3-5 jours Accessibilité débutants 22/100
firebase/firebase-admin-node#3288 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
getToken() replays a failed token refresh to later callers while a valid token is cachedPeut-être pris @GUMBOKIM l’a pris il y a 68 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
firebase/firebase-admin-node#3234 ·
Les mainteneurs répondent en général sous 1 jour
-
Misleading error message for THIRD_PARTY_AUTH_ERROR: raw "OAuth 2 access token" text surfaced instead of the APNs-specific messagePeut-être pris @milcho0604 l’a pris il y a 70 jours. Ouverteapi: messaging
Difficulté 3/5 1-2 jours Accessibilité débutants 70/100
firebase/firebase-admin-node#3215 ·
Les mainteneurs répondent en général sous 1 jour
-
api: messaging
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 28/100
firebase/firebase-admin-node#3214 ·
Les mainteneurs répondent en général sous 1 jour
-
[Firestore] Re-export functions from '@google-cloud/firestore/pipelines'Peut-être à nouveau libre @jonathanedey l’a pris il y a 114 jours, et aucune pull request n’est ouverte. Ouverteapi: firestore type: feature request
firebase/firebase-admin-node#3183 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de firebase/firebase-admin-node
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
logto-io/logto#9837 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
lingdojo/kana-dojo#32964 · 1 commentaire · 5 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Documentation status: needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
mastra-ai/mastra#28194 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
priority-low refactor-3
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 3 jours