Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Проверка токенов App Check из пользовательского бэкенда

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Вы можете защитить ресурсы вашего приложения, не относящиеся к Firebase, например, собственные серверные части, с помощью проверки приложений. Для этого вам нужно будет выполнить оба следующих действия:

  • Измените клиент приложения, чтобы отправлять токен проверки приложения вместе с каждым запросом на серверную часть, как описано на страницах для iOS+ , Android и Интернета .
  • Измените серверную часть, чтобы при каждом запросе требовался действительный токен проверки приложения, как описано на этой странице.

Прежде чем вы начнете

Если вы еще не установили Node.js Admin SDK , сделайте это.

Проверить токены

Чтобы проверить токены проверки приложений на серверной части, добавьте в конечные точки API логику, которая выполняет следующие действия:

  • Убедитесь, что каждый запрос включает токен проверки приложения.

  • Проверьте токен проверки приложения, используя метод appCheck().verifyToken() пакета Admin SDK.

    Если проверка прошла успешно, verifyToken() возвращает декодированный токен проверки приложения. Успешная проверка означает, что токен был получен из приложения, принадлежащего вашему проекту Firebase.

Отклонить любой запрос, который не проходит ни одну из проверок. Например, используя промежуточное ПО Express.js:

const express = require('express');
const app = express();

const firebaseAdmin = require('firebase-admin');
const firebaseApp = firebaseAdmin.initializeApp();

const appCheckVerification = async (req, res, next) => {
    const appCheckToken = req.header('X-Firebase-AppCheck');

    if (!appCheckToken) {
        res.status(401);
        return next('Unauthorized');
    }

    try {
        const appCheckClaims = await firebaseAdmin.appCheck().verifyToken(appCheckToken);

        // If verifyToken() succeeds, continue with the next middleware
        // function in the stack.
        return next();
    } catch (err) {
        res.status(401);
        return next('Unauthorized');
    }
}

app.get('/yourApiEndpoint', [appCheckVerification], (req, res) => {
    // Handle request.
});