Je suis en train de suivre l'exemple donné ici, où il montre l'exemple suivant pour vérifier un ID de jeton:
// idToken comes from the client app
getAuth()
.verifyIdToken(idToken)
.then((decodedToken) => {
const uid = decodedToken.uid;
// ...
})
.catch((error) => {
// Handle error
});
Mon code ressemble à ceci:
function createFirebaseAdminApp(config: AppOptions) {
if (getApps().length === 0) {
return initializeApp(config);
} else {
return getApp();
}
}
const options: AppOptions = {
credential: cert({
projectId: process.env.FIREBASE_PROJECT_ID,
clientEmail: process.env.FIREBASE_CLIENT_EMAIL,
privateKey:
process.env.FIREBASE_PRIVATE_KEY != undefined
? process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, "\n")
: "",
}),
databaseURL: process.env.FIREBASE_DATABASE_URL,
};
const firebaseAdmin = createFirebaseAdminApp(options) as FirebaseApp;
const adminAuth = getAuth(firebaseAdmin);
adminAuth
.verifyIdToken(token)
.then((decodedToken) => {
res.locals.decodedToken = decodedToken;
next();
})
.catch(() => {
next(new HttpError("Invalid token provided", 403));
});
Mais je continue à recevoir des
La propriété 'verifyIdToken" n'existe pas sur le type 'Auth'
J'ai la dernière version de la firebase colis, je suppose que l'exemple donné par la doc est en utilisant considérant qu'il utilise getAuth
, ne peut donc pas dire ce que je fais mal. Aussi j'essaie d'éviter de mélanger des firebase-admin et firebase, vous ne savez pas si cela est correct, mais si j'ai mélangé eux je n'arrive pas à éviter d'avoir à initialiser trop App instances.
Merci pour toute aide!