VerifyIdToken方法中不存在授权类型使用getAuth从火力地堡/auth

0

的问题

我试图遵循所给的例子 在这里 ,它显示以下例来验证一个ID标记:

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

我的代码看起来是这样的:

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

但我不断收到

酒店'verifyIdToken'上不存在类型的'授权'

我有最新版本的火力地堡包,我假设,给出的例子通过该文件是采用考虑到它使用 getAuth,因此不能告诉我在做什么错误的。 我也在试图避免混合火力地堡管理员和火力地堡,不知道如果这是正确的,但是如果我把它们混合我似乎无法避免的具有初始化过程序的实例。

感谢任何的帮助!

1

最好的答案

1

你是混合起来的管理SDK和client SDK.

文档你挂的是为管理SDK只。 注意到它是如何组织,在部分管理。 这不是使用getAuth任何地方在该网页上。 管理SDK被初始化完全不同于client SDK,它并不在所有的工作在浏览器。 它运行的安全backens只。

Client SDK,你正在使用不具备功能的核查标记。 这是对安全的后端只使用Adminn SDK。

2021-11-24 02:14:48

是的,我怀疑它。 谢谢你。 因此对于后台API我应该仅使用管理SDK?
Lux

这是通常的情况。 Client SDK真的只是为创建和登录用户在网/移动应用程序。
Doug Stevenson

其他语言

此页面有其他语言版本

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