У меня есть вопрос о получении отправки формы, но только для зарегистрированных пользователей с определенной ролью в моем приложении.
Моя первая неудачная попытка:
Я попытался создать лямбда-функцию, которая получает доступ к отправке формы, используя access_token
, полученный от успешного входа в систему (приглашение пользователя) на моем клиенте. Однако я получаю только пустой ответ.
Моя вторая попытка:
Вместо использования access_token пользователя я создал новый токен личного доступа, сохранил его как переменную среды в своем приложении на Netlify и использую токен в своей лямбда-функции, используя process.env.ACCESS_TOKEN
. Использование этого подхода допустимо, и я получил все отправленные формы.
Вот моя лямбда-функция 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
});
});
}
Мой URL-адрес запроса от клиента выглядит следующим образом: https://MY_DOMAIN.com/.netlify/functions/test?access_token=ACCESS_TOKEN.
Мне интересно, как я могу получить представление формы только для пользователей с определенными ролями. Что я делаю не так? Какова наилучшая практика для моего сценария?