【问题标题】:How to send headers to a page with nodejs?如何使用nodejs将标题发送到页面?
【发布时间】:2019-11-17 01:32:12
【问题描述】:

在每种用户通过登录页面传递其凭据后,我试图限制他们对网页上某些元素的访问。

实现这一点的逻辑如下:

  1. 用户在登录页面上输入他们的凭据。
  2. 如果用户输入正确的凭据,nodejs 将重定向到仪表板

以下代码是显示如何将用户重定向到仪表板端点的部分代码(为了简化这个问题,我不想显示完整的代码和完整的验证)

// nodejs code in the server
app.post('/users/api', function(req, res) {
    res.redirect('/dashboard');
}

我想到了以下方法:

与“res.redirect”一起发送一些标头以在dashboard.html页面准备好时捕获它们(使用JQuery准备功能)并编写一些函数用于在用户是否有权限时隐藏页面上的元素。

问题是我已经进行了研究,但到目前为止我还不清楚如何做到这一点,以及这是否是正确的方法。

欢迎任何帮助构建此代码。

【问题讨论】:

  • 请注意,在客户端隐藏元素并不是保护特权信息机密的安全方法。如果您正在为学校做作业,这种方法很好,但在现实世界中,您只需要在允许用户查看信息的情况下让服务器发送信息,否则任何具有任何计算机知识的人都可以轻松绕过您的元素隐藏。
  • 内特,这是学校项目

标签: javascript jquery node.js express


【解决方案1】:

您可以设置如下标题作为响应 res.setHeader('Content-Type','text/html);

【讨论】:

    【解决方案2】:

    您可以在标题中设置授权字段。

    对于授权,您需要通过编码 Base64 字符串来使用用户名:密码组合。

    var username = 'xyz';
    var password = '123';
    //  The server expects the data to be encoded in Base64.
    var auth = 'Basic ' + Buffer.from(username + ':' + password).toString('base64');
    
    var header = {'Host': 'www.example.com', 'Authorization': auth};
    var request = client.request('GET', '/', header);
    

    【讨论】:

    • 感谢您的回复,我想知道如何用 JQuery 捕获这些标头?
    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多