我试图以安全的方式将一些查询参数传递给Firebase中的http函数。我的params并不像密码等那样敏感,它们是一些布尔值,它们决定了逻辑服务器端。
当我尝试使用方法<form>
或GET
的简单PUT
时,res.query
会在我使用POST
时显示值。
<form id="form" action="https://us-central1-***.cloudfunctions.net/myfuncName"
method="post">
<input type="text" name="id" value="test">
</form>
我通过Javascript提交表单
this.getElementById("form").submit();
在我的功能中我有:
function(req, res) {
const param = req.query;
console.log('query param is ' , param); //{} when form method is POST
}
我希望能够在我的函数中从res.query获取id,但是我得到null {}。如果我将方法更改为GET或PUT,那么我会看到{id:test}。
任何关于加强安全性的建议也会受到重视。谢谢。
答案 0 :(得分:3)
res.query
允许您从请求的查询字符串中获取参数。 POST请求不使用查询字符串,因此您无法使用res.query
。 POST将参数发送到请求正文。
要访问请求正文中来自表单的POST参数,您可以使用Cloud Functions documentation中所述的req.body
。