斯威夫特& Firebase功能:HTTPS对用户进行身份验证

时间:2018-01-27 15:22:34

标签: node.js swift firebase google-cloud-functions

我有一些https云功能,我希望通过授权用户发送请求来保护这些功能。

我的功能如下:

exports.authTester = functions.https.onRequest((req, res) => {
const tokenID = req.get('Authorization').split('Bearer ')[1];

return admin.auth().verifyIDToken(tokenID)
    .then((decoded) => res.status(200).send(decoded))
    .catch((err) => res.status(401).send(err));
    console.log(decoded);
});

在我的应用程序中,我通过Alamofire调用该功能:

Alamofire.request(url, method: .get).responseString { (response) in
    if let dta = response.response?.statusCode{
        print(response)
    }
}

但是,我的控制台记录该功能因提示而崩溃:

“无法读取未定义的属性'split'     at exports.authTester.functions.https.onRequest(...)“

我该如何解决这个问题?

Thank's!

1 个答案:

答案 0 :(得分:0)

您收到此错误是因为您没有使用正确的命令调用您的云功能,该命令是在HTTP标头中传递令牌。

你会做的事情如下:

let token: String = "Bearer" + ...
let header = ["Authorization": token]
// then you pass your header into Alamofire request

以下是on how to do a POST Request from Alamofire?的链接, 来自Alamofire Docs

的链接