【发布时间】:2015-01-07 16:14:21
【问题描述】:
我知道这方面有很多线索,但我真的没有找到我要找的东西。
所以我想让用户使用节点 js 登录,我使用的是 express、mongo db,但最重要的是 socket.io。所以我希望人们从我的 index.html 填写自定义表单:
app.get('/', function(req, res) {
fs.readFile(__dirname + '/../index.html', 'utf8', function(err, text){
res.send(text);
});
});
<form method="get" id="lala" >
<input type="text" name="user">
<input type="text" name="user">
<button id="button">KOKo</button>
</form>
点击按钮:
socket.emit('checkLogin', { my collected data from the form });
所以现在在服务器端我想检查这个用户名和密码,如果他们没问题,(我不知道这里是怎么回事,但在 php 中我创建了SESSION['user_id'](例如)所以之后当用户返回另一个请求,我可以检查此会话,并且我知道用户已登录并且他可以看到该页面。
我确实看到了 passport.js mongo-db 会话存储,但我无法让任何演示工作。我不知道如何存储会话、如何检查会话以及所有这些东西。
所以如果有人可以帮助我并为像我这样的白痴写一个演示:
function check_auth_user(username,password,done,public_id){
var sql="SELECT * FROM `table` WHERE username = '"+ username +"' and password = '"+ password +"' limit 1";
connection.query(sql, function (err,results) {
if (err) throw err;
if(results.length > 0){
var res=results[0];
passport.serializeUser(function(res, done) {
done(null,res);
});
passport.deserializeUser(function(id, done) {
done(null,res);
});
return done(null, res);
} else {
return done(null, false);
}
});
}
但是现在我如何将会话设置到商店以及之后我应该如何到达它?以及如何将其发送给从套接字 io 连接的正确用户 :-)
【问题讨论】:
-
解释如何在express中使用会话-blog.modulus.io/nodejs-and-express-sessions
-
感谢您编辑我的帖子 :-)。好的,这终于是一个非常非常好的演示,我可以了解更多关于会话的信息。现在我可以问我如何在我的套接字函数中达到这个“req”参数。因为我得到的唯一参数只是我不知道如何返回的套接字,所以我可以控制台记录他。当我尝试时,我得到:TypeError: Converting circular structure to JSON at Object.stringify (native)
标签: node.js express passport.js