Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Xác minh mã thông báo Kiểm tra ứng dụng từ chương trình phụ trợ tùy chỉnh

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Bạn có thể bảo vệ các tài nguyên không phải Firebase của ứng dụng, chẳng hạn như phần phụ trợ tự lưu trữ, bằng Kiểm tra ứng dụng. Để làm như vậy, bạn sẽ cần thực hiện cả hai thao tác sau:

  • Sửa đổi ứng dụng khách của bạn để gửi mã thông báo Kiểm tra ứng dụng cùng với mỗi yêu cầu tới chương trình phụ trợ của bạn, như được mô tả trên các trang dành cho iOS + , Androidweb .
  • Sửa đổi chương trình phụ trợ của bạn để yêu cầu mã thông báo Kiểm tra ứng dụng hợp lệ với mọi yêu cầu, như được mô tả trên trang này.

Trước khi bắt đầu

Nếu bạn chưa cài đặt SDK quản trị Node.js , hãy làm như vậy.

Xác minh mã thông báo

Để xác minh mã thông báo Kiểm tra ứng dụng trên chương trình phụ trợ của bạn, hãy thêm logic vào các điểm cuối API của bạn để thực hiện những việc sau:

  • Kiểm tra xem mỗi yêu cầu có bao gồm mã thông báo Kiểm tra ứng dụng hay không.

  • Xác minh mã thông báo Kiểm tra ứng dụng bằng phương thức appCheck().verifyToken() của SDK quản trị.

    Nếu xác minh thành công, verifyToken() trả về mã thông báo Kiểm tra ứng dụng đã giải mã. Xác minh thành công cho biết mã thông báo có nguồn gốc từ một ứng dụng thuộc dự án Firebase của bạn.

Từ chối bất kỳ yêu cầu nào không kiểm tra được. Ví dụ: sử dụng phần mềm trung gian 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.
});