使用Netlify进行站点范围的仅密码身份验证

时间:2018-10-08 15:36:03

标签: netlify

我想通过使用户仅输入对所有用户都相同的密码来进行身份验证。

最初,我认为与/form-submission.js函数触发器有关,例如:

  1. /,具有登录表单。
  2. 如果密码成功,请重定向到/secretpassword/site.html
  3. /secretpassword/site.html上显示秘密内容

如果我这样做,我认为我有两个问题:

  1. 我如何获得form-submission来回应自己的逻辑?
  2. 有没有办法让我获得运行页面加载请求的功能?

这是我的form-submission函数代码

我可以看到我的函数正在函数日志中运行,但是响应仍然是netlify的表单响应页面

HTML表单操作与发布位置相同

passwordForm.addEventListener('submit', function(e) {
e.preventDefault();
var formData = Array.from(new FormData(passwordForm), e => e.map(encodeURIComponent).join('=')).join('&');

fetch('secretpassword', {
        method: 'POST',
        headers: { "Content-Type": "application/x-www-form-urlencoded" },
        body: formData
    })
    .then((response) => {
        console.log('response', response)
    })
    .catch((ex) => {
        console.log('ex', ex);
    });
});

form-submission.js

exports.handler = (event, context, callback) => {
let data = JSON.parse(event.body).payload.data,
    password = data.password.toLowerCase();

if (password !== 'secretpassword') {
    console.log('fail!')
    return callback(null, {
        statusCode: 401,
        body: 'not authorized'
    })
}

console.log('success!')
return callback(null, {
    statusCode: 200,
    body: 'secret information'
})
}

任何帮助将不胜感激!谢谢!

0 个答案:

没有答案