Tag: 会话

我如何强制刷新req.user?

我正在使用本地身份validation策略passport.js为我的node.js / express应用程序。 LocalStrategy返回的用户包括电子邮件和用户名等内容。 我想让用户能够更新他们的电子邮件或用户名内的应用程序。 发生这种情况时,我想告诉护照重新加载用户(就像他们刚刚login一样),以便req.user在会话的其余部分反映已更新的更改。 简单地设置它似乎不会超过这一个请求。 简单的例子: app.get('/changeEmail', function(req, res, next) { var userId = req.user.id; var origEmail = req.user.email; var newEmail = req.param('email'); userDao.updateEmail(userId, newEmail, function(err) { if (!err) { // user's email has changed, need change reflected in req.user from this point on req.user.email = newEmail; } next(); }); });

最安全的node.js / expressauthentication机制

我想用express来开发一个node.js应用程序。 该应用程序将支持多个访问级别。 所有用户将通过用户名和密码进行authentication。 我一直使用的authentication方法如下: 用户已通过用户名和密码进行身份validation 使用会话支持安装Express后,我使用request.session对象来存储所有用户的信息和证书,并且每当新的调用从同一用户进入服务器时,我都会检查它 这个过程有多安全? 它使用cookies吗? 它是否有漏洞? 通过websockets和socket.io或其他不同方式控制会话更安全吗? 提前致谢

如何通过socket.io对象访问express.session.MemoryStore?

我正在做一个loginfunction app.post('/teacherlogin', function(request, response) { var username = request.body.username; var password = request.body.password; con.query('SELECT t_id from login_teacher where username="'+username+'" and password="'+password+'"',function(err,results){ if(results.length > 0) { request.session.regenerate(function(){ request.session.user = username; request.session.type = 'teacher'; request.session.id = results[0].t_id; response.redirect('/teacherhome'); }); } else { response.redirect('teacherlogin'); } }); }); 现在我想发出我已经存储到会话对象的'id'和'type'。 我应该怎么做? 我读过这篇文章,但没有经验,我正面临使用它的困难。 我已经在我的代码中使用它了 var MemoryStore = express.session.MemoryStore; var sessionStore = […]

nodejs,如何设置快速会话cookie不会随时过期

在expression,会话cookie中设置maxAge=null ,设置会话cookie不会过期终身?

如何使用Redis在NodeJs和PHP之间共享会话?

我想使用Redis在NodeJs应用程序和PHP应用程序之间共享服务器会话。 我从这个要点拿走了大部分的代码。 NodeJs代码: app.use(session({ store: new RedisStore({prefix: 'session:php:'}), name: 'PHPSESSID', secret: 'node.js' })); app.use(function(req, res, next) { req.session.nodejs = 'node.js!'; res.send(JSON.stringify(req.session, null, ' ') ); }); 它输出: { "cookie": { "originalMaxAge": null, "expires": null, "httpOnly": true, "path": "/" }, "passport": {}, "nodejs": "node.js!" } PHP代码(我使用redis-session-php和Predis ): require('redis-session-php/redis-session.php'); RedisSession::start(); $_SESSION['php'] = 'php'; if (!isset($_SESSION["cookie"])) { $_SESSION["cookie"] […]

使用Passport进行身份validation后创build新会话

我已经创build了一个简单的身份validation应用程序与护照(见下面的代码)。 通过会话中间件进行expression,为请求客户端没有会话的每个请求创build一个会话。 我想只在login后分配会话或login后创build一个新的会话。 这是因为我最终将通过HTTPS进行login,并希望阻止黑客劫持已通过身份validation的用户的会话。 这是我的服务器代码: // Server.js configures the application and sets up the webserver //importing our modules var express = require('express'); var app = express(); var port = process.env.PORT || 8080; var mongoose = require('mongoose'); var passport = require('passport'); var flash = require('connect-flash'); var MongoStore = require('connect-mongo')(express); var configDB = require('./config/database.js'); //Configuration of Databse […]

节点+ Express会话到期?

我有一个快速应用程序,我有一个login表单。 我需要会话持续1个月,我设置maxAge为一个月毫秒。 我离开了两台电脑,并login了24小时,当我回来时,两人都注销了。 我如何解决这个问题/实现我想要做的? 谢谢。

如何在express-node js中使用sticky-session和cluster

我参照这个问题创build了一个依赖于集群的应用程序 但是我开始在会话处理中遇到问题。 如何在集群中使用快速js中的粘滞会话。 我正在尝试使用这个npm模块 。 但这导致了相同的情况。 如何解决这个会话问题。 sticky(http.createServer(app).listen(app.get('port'), function () { console.log('Express server listening on port ' + app.get('port')); }););

Socket.io会话没有express.js?

我想通过node.js和socket.io来处理websocket的会话,而不必使用cookie并避免express.js,因为还应该有客户端不在浏览器环境中运行。 有人已经这样做了,或者有了一些概念validation的经验?

如何使用Node.js和mongodb存储会话值?

我如何获得使用Node.js,express@2.0.0和mongodb的会话? 我现在试图像这样使用connect-mongo: var config = require('../config'), express = require('express'), MongoStore = require('connect-mongo'), server = express.createServer(); server.configure(function() { server.use(express.logger()); server.use(express.methodOverride()); server.use(express.static(config.staticPath)); server.use(express.bodyParser()); server.use(express.cookieParser()); server.use(express.session({ store: new MongoStore({ db: config.db }), secret: config.salt })); }); server.configure('development', function() { server.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); server.configure('production', function() { server.use(express.errorHandler()); }); server.set('views', __dirname + '/../views'); server.set('view engine', 'jade'); […]