对不起,我写了很多来解释我的情况,如果你没有时间或没有心情阅读所有这些只是跳到问题。即使回答其中一个也有助于我的情况,谢谢:D
我正在尝试在node.js中编写一个Web应用程序,但由于我对Web太新,我不知道如何编写Web登录系统。我不想使用基本或摘要的http身份验证,我希望它像普通的登录系统一样,http表单和不同的页面显示不同类型的用户的不同内容。我搜索了一下,我知道基础知识,但它们还不够。
这就是我得到的:
这是我不知道的部分:
如果可以,请在节点中给我一些例子 提前谢谢你:D
答案 0 :(得分:3)
Set-Cookie
标题(Set-Cookie: sessionid=abcdefg38974
)。很少的例子,它可能会在您每次请求时增加两次访问次数,因为您的浏览器也会请求/favicon.ico
。请记住,此示例不太安全,因为会话劫持是可能的,这也会将所有会话保留在内存中,并在服务器重新启动时忘记它们。将会话保存到数据库是明智的。
var http = require('http');
var sessions = {};
http.createServer(function (req, res) {
var ssid;
var session;
if (req.headers.cookie) {
// Cookie already set, read it
var parts = req.headers.cookie.split('=');
ssid = parts[1];
// Is the session id known to us?
if (typeof(sessions[ssid]) != "undefined") {
session = sessions[ssid];
console.log('Loaded session with id ' + ssid);
}
}
if (typeof(session) == "undefined") {
// No cookie set, make one
ssid = Math.random();
session = {
'visitNumber': 0
}
console.log('Created session with id ' + ssid);
}
session.visitNumber++;
// Respond to the browser
res.writeHead(200, {
'Content-Type': 'text/plain',
'Set-Cookie': 'ssid=' + ssid
});
res.end('Visit number: ' + session.visitNumber + '\n');
// Save the changes we have made to the session data
sessions[ssid] = session;
}).listen(8080);