Tag: 会话

使用passport-local进行身份validation后,无法使用来自客户端的会话

我正在尝试使用express,passport-local,mongoose编写一个小型的用户authentication模块。 用户身份validation工作正常,但我不能够在进一步的会话中使用经过身份validation的用户。 已经经历了Stackoverflow和其他地方的大部分build议,但似乎没有在这里工作。 我的代码的微缩版本如下: var express = require('express'); var cookieParser = require('cookie-parser'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var session = require('express-session'); function genuuid(req) { return "UUID"; } var app=express(''); mongoose.connect('mongodb://localhost:27017/test'); //user config var userSchema = new mongoose.Schema({ username: String, password: String}); var User = […]

在使用express-socket.io-session时,不推荐使用express-session选项,为什么会出现这种情况?

所以我正在使用express-socket.io-session模块,并试图在我的代码中复制文档中所述的示例。 但是,在这样做的时候,我一直遇到这些警告: express-session deprecated undefined resave option; express-session deprecated undefined saveUninitialized option; express-session deprecated req.secret; 我的express版本是4.13.4,socket.io是1.4.5,根据文档支持。 我不知道为什么它一直说废弃。 这是我如何初始化我的快速会议和express-socket.io会话: var expressSession = require('express-session'); var sharedSession = require('express-socket.io-session'); app.use(expressSession({secret:'surfsocial2016', resave: true, saveUninitialized: true }) ); io.use(sharedSession(expressSession,{autoSave:true})); 以下是我的套接字代码: io.on('connection', function(socket){ console.log(socket.handshake.session.room); socket.on('send message', function(data){ console.log(data["message"]); io.emit('new message', data["message"]); }); }); 我的“发送消息”事件不起作用,因为每当我从客户端发出的东西时,没有发生。 我认为这是因为被弃用的警告。 一切正常,如果我删除io.use(sharedSession(expressSession,{autoSave:true})); 这就是为什么我怀疑这个问题是与那些被弃用的警告有关。 我初始化variables是否错误?

使用req.login()刷新passport.js会话数据

我正在使用passport.js。 问题是当我更改用户名称等用户信息时,直到用户重新login才更改。 如果用户注销并再次login,则信息已更改。 但我想在不重新login的情况下更改会话。 我的反序列化用户函数如下所示,它看起来不同的原始护照的例子,因为它是从会议拾取数据,而不是查询数据库。 我想加载速度,所以我没有使用反序列化函数的数据库查询。 passport.deserializeUser(function(userSession, done){ var member = { id : userSession[0], name : userSession[1] }; done(null, member); }); 所以我想我必须像下面那样使用req.login() ,但会话不会改变。 Members.findOne({_id : someId }, function(err, member){ member[username] = req.body.username; member.save(function (err){ if(err) return next(); console.log('The original session :'+req.sessionId); req.login(req.user, {}, function(err){ if (err) return next(); console.log('The new session :'+req.sessionId); res.send(200); }); […]

connect-mongo每秒创build一个新的会话

我有我的nodejs应用程序托pipe在Openshift上。 这是我的规格: 节点v0.10.35,expressionv3.4.8 我的package.json依赖关系: "dependencies": { "angular-loading-bar": "^0.9.0", "async": "^2.0.0-rc.5", "bcrypt-nodejs": "0.0.3", "body-parser": "~1.0.0", "connect-flash": "^0.1.1", "connect-mongo": "^1.2.0", "cookie-parser": "~1.0.0", "ejs": "^2.4.1", "express": "~3.4.4", "lodash": "^4.12.0", "method-override": "~1.0.0", "mongodb": "~2.x", "mongoose": "~4.4.12", "morgan": "~1.0.0", "nodemailer": "^2.3.2", "passport": "^0.3.2", "passport-local": "^1.0.0", "recaptcha2": "^1.0.8" }, 这里是我的server.js #!/bin/env node var express = require('express'); var fs = require('fs'); var […]

节点Js – 会话pipe理

我有一个简单的应用程序,它将login一个用户,并根据他的angular色将让他使用一个特定的API(比如normal / admin..view / update分别)。 我正在使用MYSQL来validation用户和连接池来pipe理许多应用程序的连接。 这是我如何pipe理会议, app.use(expressSession({ cookieName: 'session', secret: 'mysecret', duration: 15 * 60 * 1000, })); login时, app.post('/login',function(req,res){ Authenticate(req.body.username,req.body.password,function(err,fname,user){ if(!err) { req.session.name=user; res.send("Welcome " + fname); } else{ res.send("There seems to be an issue with the username/password combination that you entered"); } }); }); 每当我想访问任何特定的API,我会检查这个会话名称。 app.post('/updateInfo',function(req,res){ if(req.session.name){ // My logic – i […]

closures浏览器后保持会话活动 – Node.js +客户端会话

我在node.js中设置了以下会话pipe理器代码 app.use(function(req, res, next) { if (req.session && req.session.id) { DB.FindUser(req.session.id, function(err, id) { if (err) throw err; if (id) { res.setHeader('X-Seen-You', 'true'); next(); }else{ res.json({code : 100, status : false, msg :"Error in connection database"}); } }); } else { DB.AddUser({ sessionId: Helper.GUID(), ip: req.headers.origin}, function(err, id){ if(id){ req.session.id = id; res.setHeader('X-Seen-You', 'false'); } […]

无法在typescript / angular2环境中设置持久会话,在后端设置nodejs

我在前端使用typescript / angular2 ,在后端使用nodejs 。 我相信后端本身实际上没有问题。 我相信问题出在前端。 在angular2组件中,我使用'@ angular / http'来创build以下客户端。 this.http .post(this.url, to_send) .map((res) => this.handleResponse(res) ); 在服务器上接收login请求,并通过修改会话的variables req.session.cookie.something = "something"; 但是,当我再次调用服务器时,在相同或不同的组件中: this.http .post(this.url, ANOTHER_CALL) .map((res) => this.handleResponse(res) ); 会话在服务器端不存在(没有“东西”,会话不是持久的)。 我的问题是: 这个来自@ angular / http的http会自动处理前端中的会话/ cookie吗? 我错过了什么? 我真的相信这个问题不在后端,因为我以前用nodejsdevise过类似的系统,但如果有人认为它可能是因为这个与他们合作,我会尝试发布。 但是,我真的相信这个问题一定在这里。

从不同的路线访问Express会话是不确定的?

我试图实现无限滚动。 在我的第一条路线中,我从数据库中加载5个元素,并存储上次看到的项目的ID。 要加载更多的数据getNextHomeContent被调用,但由于某种原因req.session.lastseen未定义。 server.js var express = require('express'); var session = require('express-session'); var app = express(); var mongoose = require('mongoose'); var logger = require('morgan'); var bodyParser = require('body-parser'); var cors = require('cors'); //imports database configuration var databaseConfig = require('./config/database'); //defines route file to use var router = require('./app/routes'); //connect to datbase mongoose.connect(databaseConfig.url); app.listen(process.env.PORT || 8080); […]

带会话处理的套接字。 在Post方法上创build会话。 服务器端值被设置。 但发射到客户端刷新

我已经在post方法上创build了一个会话variables。 值在服务器端设置。 var sess; app.post('/loginn', function(req,res){ sess=req.session; sess.email=req.body.email; console.log("sess.email"); // value is set here io.emit("socket email",{email: sess.email}); // To access the session in client i tried emit on post but its not accessible res.json({id : req.body.socket, user : req.body.email, message : "done" }); }); 我在访问url http:// localhost:3001 / notification时使用了会话variables 由以下代码。 app.get('/notification', function(req,res){ sess=req.session; console.log(sess); console.log("sess […]

node.js会话

我有一个页面 – index.html和chat.html。 在页面index.html – 我有一个表单和input(input1和input2)和button。 当我按下button,我想要使用node.js保存条目。 当我转到页面chat.html时,我想要检索这些值。 当我刷新页面,所以我不想丢失数据。 感谢您的帮助!