2017-06-22 57 views
1

我正在使用firebase雲端功能,並在第一次看到cors後將原點設置爲true ..但通過這種方式,任何人都可以訪問我的功能,所以我尋找了一種方法只允許特定的域訪問我的雲功能,我從cors github頁面獲得了代碼並嘗試了它,但在等待和等待之後,我意外地關閉了連接。如何讓特定域名訪問雲端功能

這裏是我的功能index.js -

const functions = require('firebase-functions'); 
const cors = require('cors'); 

var whitelist = ['http://example1.com', 'http://example2.com'] 
var corsOptionsDelegate = function (req, callback) { 
    var corsOptions; 
    if (whitelist.indexOf(req.header('Origin')) !== -1) { 
    corsOptions = { origin: true } // reflect (enable) the requested origin in the CORS response 
    }else{ 
    corsOptions = { origin: false } // disable CORS for this request 
    } 
    callback(null, corsOptions) // callback expects two parameters: error and options 
} 

exports.api = functions.https.onRequest((req, res) => { 
cors(req, res,() => { 
    var d = new Date(); 
    var n = d.getHours(); 
    if (n > 8 && n < 17) { 
    res.status(200).send("Get started") 
    } else { 
    res.status(200).send("Closed") 
    } 
}) 
}); 
+1

你定義一個函數稱爲corsOptionsDelegate,但你沒有做任何事情。在我看來,功能必須通過某個地方。 –

+0

好吧,但即時新手這個我不知道該怎麼做,或者如果有一種方法來允許只有經過身份驗證的用戶訪問 – user7716943

+1

可能重複的[安全的HTTP觸發器用於Firebase雲功能](https:// stackoverflow.com/questions/43238611/secure-http-trigger-for-cloud-functions-for-firebase) – David

回答