【发布时间】:2014-12-24 20:45:15
【问题描述】:
将 node.js 与 express 结合使用,我制作了一个简单的 https 服务器。出于测试目的,我制作了一个基本的登录表单,该表单将发布到此 https 服务器。
我的期望是,只需这样做:
var app = require('../app');
var https = require('https');
var fs = require('fs');
// I used openssl to generate a ssl certificate
var pkey = fs.readFileSync('key.pem');
var pcert = fs.readFileSync('cert.pem');
var options = {
key: pkey,
cert: pcert
};
var httpsServer = https.createServer(options, app);
httpsServer.listen(8081, 'localhost');
发布到/login 的数据将被正确加密:
var express = require('express');
var router = express.Router();
router.post('/login', function(req, res) {
console.log(req.body); // this is the post data sent from client
});
我希望req.body 看起来像“加密”数据,因为我没有中间件解密任何东西,但我得到了{name: 'abc', 'password': '123'}。我是否在此过程中遗漏了一个步骤,或者节点https 模块是否处理所有加密/解密内容?还是我完全错过了 https 用于/做什么的图片?
【问题讨论】:
-
您需要了解
https的工作原理以及它是什么 -
@Vsevolod Goloviznin 我当然可以阅读有关该主题的更多信息。虽然我不清楚,但我的问题更多是关于节点
https模块或者一般来说可能是 https 服务器。我的理解是服务器从客户端获取加密数据,并使用商定的密码套件和正确的密钥来重新组合数据。我正在寻找的是确认这个解密过程是在https模块中处理的,并且它作为服务器端流程的第一步发生。 -
是的,它首先解密数据,这就是为什么您在路由器方法中没有得到一些随机值的原因。
标签: javascript node.js encryption express