Firebase/auth getAuth kullanarak Auth türünde verifyIdToken yöntemi yok

0

Soru

Ben çalışırken izleyin örnek verilmiş burada nerede gösterir aşağıdaki örnek için bir KİMLİK doğrulama belirteci:

// idToken comes from the client app
getAuth()
  .verifyIdToken(idToken)
  .then((decodedToken) => {
    const uid = decodedToken.uid;
    // ...
  })
  .catch((error) => {
    // Handle error
  });

Kodum şuna benziyor:

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));
            });

Ama almaya devam ediyorum

'Auth' türünde 'verifyIdToken'özelliği yok

Firebase paketinin en son sürümüne sahibim, dokümanlar tarafından verilen örneğin kullandığı göz önüne alındığında kullandığını varsayıyorum getAuth bu yüzden neyi yanlış yaptığımı söyleyemem. Ayrıca firebase-admin ve firebase'i karıştırmaktan kaçınmaya çalışıyorum, bunun doğru olup olmadığından emin değilim, ancak bunları karıştırırsam çok fazla Uygulama örneğini başlatmak zorunda kalmaktan kaçınamıyorum.

Herhangi bir yardım için teşekkürler!

1

En iyi cevabı

1

Yönetici SDK'SINI ve istemci SDK'SINI karıştırıyorsunuz.

Bağladığınız belgeler yalnızca Yönetici SDK'sı içindir. Yönetici bölümünde nasıl düzenlendiğine dikkat edin. Bu sayfanın hiçbir yerinde getAuth kullanmıyor. Yönetici SDK'sı istemci sdk'sından tamamen farklı olarak başlatılır ve tarayıcılarda hiç çalışmaz. Sadece güvenli desteklerle çalışır.

Kullanmakta olduğunuz istemci sdk'sının belirteçleri doğrulamak için bir işlevi yoktur. Bu, yalnızca Adminn sdk'sını kullanarak güvenli arka uçlar içindir.

2021-11-24 02:14:48

Evet, ben şüpheleniliyor. Teşekkür ederim. Yani bir arka uç API'sı için yalnızca Yönetici sdk'sını kullanmalı mıyım?
Lux

Bu tipik bir durum. İstemci SDK'sı gerçekten yalnızca web/mobil uygulamanızda kullanıcılar oluşturmak ve oturum açmak içindir.
Doug Stevenson

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................