首页 > 解决方案 > Firebase 功能中的白名单域

问题描述

仅应允许列入白名单的域使用 API 服务。

下面是我的代码

const domainsList =  require('./domains');

const corsOptions = {
    origin: function (origin, callback) {
      if (domainsList.indexOf(origin) !== -1) {
        callback(null, true)
      } else {
        callback(new Error('Not allowed by CORS'))
      }
    }
  };

exports.sendEmail = functions.https.onRequest((req, res) => {
    cors( corsOptions ,req, res, () => { 
         console.log("Domain Whitelisted")
    });
});

我收到此错误TypeError: Cannot read property 'origin' of undefined

我在这里做错了什么?请指导我

标签: node.jstypescriptgoogle-cloud-functions

解决方案


您可以在定义cors变量的位置添加选项。

const cors = require('cors')({origin: function (origin, callback) {
      if (domainsList.indexOf(origin) !== -1) {
        callback(null, true)
      } else {
        callback(new Error('Not allowed by CORS'))
      }
    }
});

并将其从.sendEmail功能行中删除:

cors(req, res, () => { 
  console.log("Domain Whitelisted")
});

推荐阅读