Tag: 快速会话

快速会话不会保存…除非我刷新我的浏览器?

我试图实现一个简单的login节点和expression,将login的用户信息存储在快速会话中。 这是我到目前为止 应用: var express = require("express"); var cookieParser = require("cookie-parser"); var session = require("express-session"); var bodyParser = require("body-parser"); var app = express(); app.use( cookieParser(SESSION_SECRET) ); app.use( bodyParser.json() ); app.use( bodyParser.urlencoded({extended:true}) ); app.use( session({secret:SESSION_SECRET, resave:true, saveUninitialized:true, cookie:{httpOnly: false, secure:false, maxAge:COOKIE_MAX_AGE}}) ); // a couple app.use statements to serve static files from a public folde 我的login路线是这样的: […]

表示4火灾事件结束

我正在为会话cookie设置一个最大时间 app.use(session({ secret: process.env.EXPRESS_SECRET, key: 'sid', cookie: {secure: false, maxAge: 3000} })); 如何使用事件发射器或快速自定义事件(内部附带事件发射器) – 在会话结束时触发事件并将数据发送到视图层?

如何为节点expresss.js使用cookie会话

由于快速会话还没有准备好在生产环境中工作,除非您将模块更改为redisStorage类的redisStorage ,所以我决定进行cookie会话 。 文档似乎不是很清楚。 它说 其他选项传递给cookies.get()和cookies.set() 那里的cookies是什么? 这是否意味着我们必须使用set来设置我们想要的选项? 我试图使用cookieSession作为快速会话 ,但它似乎不是它的工作方式: var cookieSession = require('cookie-session'); app.use(cookieSession({ maxAge: 20*60*1000, //20 mins httpOnly: true, secure: true, secureProxy: true, keys: ['key1', 'key2'] }));

为什么app.use(…)不能在asynchronous函数中声明?

我正在尝试使用express框架来设置node.js服务器并实现会话。 这工作: var express = require('express'); var session = require('express-session'); var redis = require('redis'); var server = express(); var redisClient = redis.createClient(); server.use(session({secret: 'mySuperSecretKey'})); server.listen(8000, function () { console.log('listening…'); }); server.get('/', function (req, res) { req.session.aSessionEntry = 'value'; res.send('Your session entry is' + req.session.aSessionEntry); }); 但是,当我声明server.use(会话(…))在一个asynchronous函数,它被忽略 – 会话处理不再工作。 这里 : var express = require('express'); var […]

续订express.js的Cookie会话

我正在使用用于Expresss.js的cookie会话模块来处理会话。 我希望会话在每次页面加载(或Ajax调用)时更新。 这就是他们通常在任何地方工作。 文件没有说一个字。 我试过这样做,但没有成功: app.use(function(req,res,next ){ req.sessionOptions.maxAge = 20*1000; return next(); });

在Express中AngularJS作为前端时未定义会话

我用NodeJS和Express编写了webservice。 服务在端口8090上运行。我还在AngularJS上写了前端,并在端口8080上运行。 Mongo有所有用户的用户名和密码 当我通过HTML5 / AngularJS前端login时,AngularJS应用程序又调用express的http post请求。 用户通过身份validation。 我设置req.session.email =用户的电子邮件地址。 我甚至能够返回并检查在AngularJS的控制台日志req.session.email被设置正确的快递 问题是我在Express中创build了一个名为“restrict”的authentication函数,只有当req.session.email没有被定义时,它才能作为中间件函数来访问其他的get / post请求。 但是即使已经设置了会话,当这个Express的其他get / post请求被AngularJS应用调用时,这个“restrict”函数也会阻止这个调用,因为它接收到req.session.email为undefined AngularJS和Express都在同一台机器上。 但我不认为这是问题。 Express代码片段 var url = 'mongodb://127.0.0.1:5555/contacts?maxPoolSize=2'; var mongojs = require('mongojs'); var db = mongojs(url,['data']); var dbauth = mongojs(url,['users']); // var request = require('request'); var http = require('http'); var express = require('express'); var cookieparser = require('cookie-parser'); var app […]

什么时候使用快速会话创build一个cookie?

我在一个项目中使用快速会话,并且很努力的去理解它何时在浏览器上创build一个cookie来与会话存储一起使用。 在我的项目中,当我请求我的主页(“/”)时,不会创buildcookie,但是当我请求任何其他页面时,会创build一个cookie。 如果我远离主页(即“/ user / signup”),请从浏览器中删除cookie,然后返回主页,但不会为会话存储创buildcookie。 我的问题是理解为什么它会为除主页以外的其他请求创build一个会话cookie。 var app = express(); app.use(express.static(path.join(__dirname, 'public'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(validator()); app.use(cookieParser()); app.use(session({ secret: 'mysupersecret', resave: false, saveUninitialized: false, store: new mongoStore({ mongooseConnection: mongoose.connection }), cookie: {maxAge: 180 * 60 *1000} })); app.use(flash()); app.use(passport.initialize()); app.use(passport.session()); app.use('/user', userRoutes) app.use('/', indexRoutes); router.get('/', function(req, res, next) { Product.find(function(err, docs){ […]

什么是安全会话密码?

我正在使用快速会话,我需要创build会话密钥。 我读过这个秘密是用来散列的。 这个秘密应该有多长时间? 我在想像这样一个随机的字母数字string: IqFic484907I0T552hiMQ1UCJimRGL55 任何人都可以给我这个build议吗?

Node Express无法设置发布请求的会话

我使用node express 4.0来实现一个消息代码validationfunction。 我使用会话来存储我发送的味精代码。 我设置会话中间件作为dos说: app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(session({secret:'ssssss'})); app.use(express.static(path.join(__dirname, 'public'))); app.use('/uploads', express.static(path.join(__dirname, 'uploads/temp'))); 但是当我使用post方法获取msg代码时,发现会话没有成功设置。 像下面的代码一样: router.post('/msgCode', function(req, res) { req.session.test = 'test'; // request send msg code api then response } 当我重新发布这个路由器时,我发现req.session.test是未定义的。 那么我在另一个路由器上试试这个: router.get('/sendMsgTest', function(req, res) { req.session.test = 'test'; res.json({ status:0 }) } 每次我请求sendMsgTest ,我都可以得到req.session.test 。 当我请求另一个get方法时,我可以成功获得req.session.test值。 那为什么我的post方法不起作用?

在一个path文件中定义的Express-session在app.js节点JS中不可用

我在节点js中的快速会话问题,并表示4.我在routes / index.js内设置一个会话variables,并不是在app.js.中可用另一个路由文件users.js 路线/ index.js var sess; router.get('/setsession',function(req,res){ sess=req.session; sess.username="safeer"; res.send("hi "+sess.username); }); router.get('/getsession',function(req,res){ sess=req.session; res.send("hi "+sess.username); //here session value available }); 路线/ users.js var sess; router.get('/session3',function(req,res){ sess=req.session; res.send("hi "+sess.username); // here also session is available }); app.js var session = require('express-session'); app.use(session({secret: 'secret',saveUninitialized: true,resave: true})); var sess; app.get('/session1',function(req,res){ sess=req.session; res.send("hi "+sess.username); //here session is […]