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 را از یک باطن سفارشی تأیید کنید

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

می‌توانید با App Check از منابع غیر Firebase برنامه‌تان مانند backends خود میزبان محافظت کنید. برای انجام این کار، باید هر دو مورد زیر را انجام دهید:

  • کلاینت برنامه خود را تغییر دهید تا یک نشانه بررسی برنامه به همراه هر درخواست به باطن شما ارسال شود، همانطور که در صفحات iOS+ ، Android و وب توضیح داده شده است.
  • همانطور که در این صفحه توضیح داده شده است، باطن خود را طوری تغییر دهید که با هر درخواست، به یک نشانه معتبر App Check نیاز داشته باشید.

قبل از اینکه شروع کنی

اگر قبلاً Node.js Admin SDK را نصب نکرده‌اید، این کار را انجام دهید.

تایید نشانه ها

برای تأیید نشانه‌های App Check در باطن خود، منطقی را به نقاط انتهایی API خود اضافه کنید که کارهای زیر را انجام می‌دهد:

  • بررسی کنید که هر درخواست دارای نشانه بررسی برنامه باشد.

  • با استفاده از appCheck().verifyToken() ، کد App Check را تأیید کنید.

    اگر تأیید موفقیت آمیز باشد، verifyToken() رمزگشایی شده App Check را برمی گرداند. راستی‌آزمایی موفقیت‌آمیز نشان می‌دهد که رمز از یک برنامه متعلق به پروژه 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.
});