我有一个关于获取表单提交的问题,但仅限于在我的应用程序中具有特定角色的注册用户。
我的第一次失败尝试:
我试图创建一个 lambda 函数,该函数使用access_token从我的客户端上的成功(邀请用户)登录接收到的表单提交。但是,我只得到一个空洞的回应。
我的第二次尝试:
我没有使用用户的 access_token,而是创建了一个新的个人访问令牌,将其作为环境变量存储在 Netlify 上的应用程序中,并在我的 lambda 函数中使用process.env.ACCESS_TOKEN. 使用这种方法是有效的,我收到了所有的表单提交。
这是我的 lambda 函数 test.js:
const request = require('request');
exports.handler = function(event, context, callback) {
let ACCESS_TOKEN = process.env.ACCESS_TOKEN; // when using my personal API token created in Netlify. Does work
let ACCESS_TOKEN = event["queryStringParameters"]['access_token']; // passing the user's `access_token` from the client in request url. Does not work.
const options={
url: "https://api.netlify.com/api/v1/sites/MY_SITE_ID/forms/MY_FORM_ID/submissions",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${ACCESS_TOKEN}`
}
}
request(options, (error, response, body) => {
console.log("access_token", ACCESS_TOKEN); // I know the ACCESS_TOKEN is present in both of my scenarios.
callback(null, {
headers: { "Access-Control-Allow-Origin": "http://localhost:4200","Access-Control-Allow-Headers": "Content-Type"},
statusCode: 200,
body: body
});
});
}
我来自客户端的请求网址如下所示: https://MY_DOMAIN.com/.netlify/functions/test?access_token=ACCESS_TOKEN。
我想知道如何才能为仅具有某些角色的用户获取表单提交。我究竟做错了什么?我的方案的最佳实践是什么?