Tag: 会话

在express.js中查看当前所有活动的会话

我发现了许多其他语言的类似问题 – ASP.net,Django等…但是,我对Node.js的Express.js感兴趣。 我如何查看当前活动的所有会话?

使用Express.js v4和Socket.io v1进行会话

如何在express.js中保存会话数据并在socket.io事件中访问它? 我正在使用express.js v4 , socket.io v1和基本的快速会话中间件来开发web应用程序。 我花了几个小时试图解决这个问题,但堆栈溢出的所有当前答案只适用于expressionv3和socket.io v0.9。 不幸的是,我不能使用express.io,因为它只是一个使用这些旧版本的包装器。 我目前的解决scheme是彻底的黑客攻击 app.get('/auth', function(req, res) { if(verified(req.query)) { authed[req.sessionID] = true; } }); io.sockets.on('connection', function(websocket) { var cookies = cookie.parse(websocket.handshake.headers.cookie); var decrypted = cookieParser.signedCookies(cookies, random); var sessionID = decrypted['connect.sid']; websocket.on('input', function(input) { if(authed[sessionID]) { // Do stuff… } }); }); 我将基于会话ID的“会话数据”保存在对象中作为键/值存储区。 这对于单个进程应用程序来说工作得很好,但它确实不是一个好的解决scheme。 它实际上并没有给我访问保存在req.session中的任何东西,如果过程结束,我保存的所有数据都将丢失。 最重要的是,我需要加载第三方的cookie包来parsing来自socket.io的cookiestring。 似乎新版本的Cookieparsing器没有使用它的函数来parsingstring中的cookie。 至less,没有logging。 有一个更好的方法! […]

ExpressJS设置/获取/使用Cookie

请求中无法获得设置的cookie。 我设置了我的cookie response.cookie('name', 'My name'); 我想以这种方式得到我的cookie,之前它工作,但我改变了快速configuration,我不知道什么似乎是现在的问题。 request.cookies is and empty Object 我的快捷configuration: var express = require('express'), api = require('./routes/api'); var app = express(); app.configure(function () { app.set('port', process.env.PORT || 3000); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); //app.use(express.bodyParser()); app.use(express.compress()); // New call to compress content app.use(express.cookieParser()); app.use(express.session({secret: 'secret'})); app.use(app.router); app.use(express.methodOverride()); //app.use(express.static(__dirname + '/public')); }); app.all('*', function(req, res, next) { […]

如何通过BrowserSync中间件设置会话cookie?

我最近从Express Web应用程序移到了Nodejs的BrowserSync应用程序。 使用Express,如果我想设置一个cookie,我的configuration看起来是这样的: var express = require('express'); var session = require('express-session'); var finalhandler = require('finalhandler'); var serveStatic = require('serve-static'), serve = serveStatic(__dirname); var app = express(); app.use(session({ // see https://github.com/expressjs/session secret: 'keyboard cat', resave: false, saveUninitialized: false })) .use(function(req, res, next) { res.cookie('myCookie', 'my cookie value'); var done = finalhandler(req, res); serve(req, res, done); }); […]

如何使用node.js实例在rails / rack应用程序上共享身份validation?

我一直在想如何将一个node.js应用程序集成到一个Rails应用程序,并让他们共享会话。 到目前为止,我只能通过机架中间件来挖掘sinatra和ruby之间的共享会话。 有没有可能做到这一点? 我想到了一个解决scheme,它实现了一个rest服务,用于“引导”一个指向node.js的guid,以创build自己的会话。 然而,这种解决scheme需要有模型validation广告这样存储在两个独立的应用程序。 只是想知道是否有办法整合他们。 同时使用像geddy或express这样的基于js的web框架是很酷的,我有很多现有的rails代码和第三方库,比如活跃的商人,我不得不重新创build。

Rails,Node.js跨服务器authentication

所以我正在做一个rails应用程序,也利用node.js实时function。 在节点应用程序上validation用户的最佳方法是什么? 我一直在考虑将会话ID保存在数据库中,然后进行validation,或者在页面中显示用户ID,然后在连接时将其发送给节点应用程序。 或者也许别的东西完全是最好的。 我使用mongoose为我的节点orm和mongoid的ruby。

在node.js中,如何使用socket.io设置redis并进行expression? 特别使用RedisStore()

第一个问题 我试图找出会议,商店,授权和redis。 如果重要,我使用Express@3.0.0rc4 。 我明白,我有两个select把我的RedisStore() 。 我使用哪一个? 我是否同时使用? express.session({secret: 'secret', key: 'key', store: new RedisStore()}); io.set('store', new RedisStore()); 我已经有了node.js , express和socket.io运行。 所以现在我试图实现redis但我不知道如何使用会话/存储实现授权,我不知道如何写入redis数据库。 我还没有find任何文件。 我发现一个网站,谈论会议和商店使用socket.io和快递,但没有redis,另一个谈到会议和商店使用所有三个 ,但它不使用io.set('store', …) 。 我也不知道是否应该使用两个不同的商店,一个用于express ,另一个用于socket.io ,或者如果我只使用一个。 看看这个例子来澄清: //Redis Variables var redis = require('socket.io/node_modules/redis'); var RedisStore = require('socket.io/lib/stores/redis'); var pub = redis.createClient(); var sub = redis.createClient(); var client = redis.createClient(); var redis_store […]

node.js传递身份validation状态

如果用户已经在PHP中进行身份validation,将用户的身份validation状态传递给node.js的最佳方法是什么? 例如 – 有一个用php编写的应用程序需要使用node.js进行实时更新。 但是这些更新应该仅限于login用户。 什么是最好的办法呢? 有没有办法从node.js访问PHP会话数据?

我应该使用Sails.js和Stormpath整合会话pipe理吗?

我正在调查使用Stormpath为我们的用户pipe理。 我目前有一个使用Node.js / Express.js的Sails.js应用程序。 目前,会话pipe理由默认的Sails.js框架处理,该框架严重依赖Express的会话中间件。 会话存储在生产中的共享Redis数据库中,以便我们可以保持多个API服务器无状态。 我的问题是两个会话pipe理系统是否会冲突和/或引起错误? 他们必须巩固还是可以安全地将他们分开? 如果他们必须合并,那么你如何configuration中间件? 作为一个说明,我们不会在Stormpath上存储很多用户数据,我们只会将它们用作auth / token提供程序。 谢谢您的帮助!

NodeJS cookie不能在Express 4中使用会话

我已经将我的NodeJS应用程序更新到Express 4.0,现在除了快速会话cookie之外,我无法设置自己的Cookie。 这个问题只发生在任何会话的第一个请求,当用户重新加载页面的自定义cookie在那里。 var express = require('express'); var routes = require('./routes'); var http = require('http'); var path = require('path'); var session = require('express-session'); var app = express(); app.set('port', process.env.PORT || 3000); app.use(express.static(path.join(__dirname, 'public'))); app.use(require('body-parser')()); app.use(require('method-override')()); app.use(require('cookie-parser')('cookie-secret')); //app.use(session({ secret: 'secret', key: 'sid'})); //uncomment this to see the problem app.get('/', function(req, res, next) { res.cookie('testing', 'test'); //this […]