これには多くの踏み跡があることは知っていますが、探しているものが本当に見つかりませんでした。
したがって、ノード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から接続された正しいユーザーに送信する方法:-)