我有一些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!
答案 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
的链接