Tag: 快速会话

节点Express会话和离子angular度之间的会话丢失

我在节点上使用快速会话来存储用户的数据。 我允许访问控制允许来源和访问控制允许证书。 所以在我的请求中,我设置了Credentials等于true: return this.http.post('https://localhost:2800/login', profile, {withCredentials: true}) 问题是,如果应用程序向其他站点发出任何请求,或者在S3上请求映像,则与服务器的会话将丢失。 (我必须再次login)。 这只发生在我的networking浏览器(运行离子服务),一旦我加载我的应用程序在物理智能手机运作良好。

我如何强制删除会话ID cookie与快速会议?

我正在使用快速会话模块来设置到期年龄的会话。 在这个年龄之后,当页面被刷新时,cookie将被删除。 但是,比如当用户注销时,我想强制删除这个cookie。 我已经使用req.session.destroy.成功销毁了会话req.session.destroy. 我试过使用: res.clearCookie('SID').status(200).send('Page'); 里面req.session.destroy,虽然,如果我在浏览器中查看cookie的详细信息,我看到内容设置为什么都没有,过期date设置为Thursday, 1 January 1970 at 01:00:00,虽然cookie不会删除自己。 我还设置了未unset: 'destroy'会话存储configuration中的unset: 'destroy' ,但这并没有解决我的问题。 中间件: app.use(session({ store: new MemoryStore({ checkPeriod: 86400000 }), cookie: { secure: true, maxAge: 10000 }, secret: secret, resave: false, saveUninitialized: false, name: 'SID', unset: 'destroy' })); 提前致谢。

如何重写快速会话销毁方法Nodejs

我正在做一个项目,需要被通知时,会话销毁被称为或其他替代是重写会话的销毁方法,并在那里执行我的代码。 任何人都知道我们该怎么做? 我试图了解快速会话代码 https://github.com/konteck/express-sessions 但我无法得到我该怎么做呢。 也在他使用的代码的一部分 for (var i in MongoStore) { SessionStore.prototype[i] = MongoStore[i]; } 对我来说,这是我第一次看到原型数组的forms,不知道这是什么意思(我几乎了解原型,但不是这种forms)任何人有任何解释从这个代码? 谢谢 var express = require('express'); var mongoose = require('mongoose'); var redis = require("redis"); var MongoStore = { client: null, options: {}, get: function (sid, cb) { MongoStore.client.findOne({sid: sid}, function (err, doc) { try { if (err) return cb(err, […]

反应与快速后端和快速应用程序的应用程序

我目前有一个React应用程序(通过create-react-app )和一个用于我的API调用的Express服务器。 他们都分开运行,一直工作正常,直到我碰到这个问题: 我也使用express-session和passport进行用户authentication。 我能够authentication用户,但会话不会持续在API调用之间。 如果我成功login,下次进行API调用时, req.sessionID将会不同, req.isAuthenticated()将返回false 。 这是我的服务器代码: 'use strict' var express = require('express'); var path = require('path'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var mongoose = require('mongoose'); var passport = require('passport'); var session = require('express-session'); var cors = require('cors'); var flash = require('connect-flash'); var store = require('./store'); var database = […]

Express在更改auth头时会创build不同的会话

我是新来expression,我试图创build会话时,用户login到我的应用程序。我正在使用护照进行身份validation。 要login用户,我正在创build基本策略和成功的基本策略我正在创build一个JWT令牌,我在客户端存储在cookie中,我使用JWT战略为随后的请求。 但我注意到,快速会话正在创build一个会话,当我login其中有基本标题和另一个会话为JWT标题的后续调用。 这里是我的代码,我login保存会话 signin = function(req, res, next) { passport.authenticate('basic', function(err, user, info) { if (err) { return next(err) } if (!user) { return res.status(401).json({ error: 'message' }); } var token = jwt.encode({ user: user}, config.db.secret); res.cookie('token', token, { maxAge: 900000, httpOnly: true, path: '\/', Secure: true }); res.status(200).json({ success: true, firstName: user.firstName }); […]

如何在connect-pg-simple中指定连接string?

https://github.com/voxpelli/node-connect-pg-simple上的简单示例显示: var session = require('express-session'); app.use(session({ store: new (require('connect-pg-simple')(session))(), secret: process.env.FOO_COOKIE_SECRET, resave: false, cookie: { maxAge: 30 * 24 * 60 * 60 * 1000 } // 30 days })); 但是,当我尝试它,节点抱怨: 抛出新的错误('没有数据库连接的细节提供connect-pg-simple'); 我如何指定连接string?

在快速会话中是否可以将一组数据结构或其他数据结构存储为会话variables?

我尝试在会话variables中保存一个集合: var rowLength = result.rows.length; var setOfPermissions = new Set(); for (var i = 0; i < rowLength; i++) { var permission = result.rows[i].permission; setOfPermissions.add(permission); } req.session.permissions = setOfPermissions; 但稍后当我尝试访问它时: var setOfPermissions = req.session.permissions; if(setOfPermissions.has('my permission')) //Error over here 我得到以下错误: TypeError:setOfPermissions.has不是一个函数 编辑:console.log(“权限:::”+ setOfPermissions)的输出; 是: 权限::: [对象对象]

npm模块支持Redis Sentinel作为会话存储

我将在我的Node js(express)Web应用程序中使用redis sentinel集群作为会话存储。 你可以请列出最好的NPM模块做这个。

Express JS – 重置cookie过期时间

我正在使用快速会话来pipe理会话。 我正在使用这个: app.use(session({secret: 'secret', resave: false, saveUninitialized: false, cookie: { maxAge: 6*1000 } }) ); 现在我想每次我的url被重置过期值为6。 所以我这样做: req.session.cookie.maxAge = 6000 但最大年龄没有重置,并且会话在6秒钟内总是过期,即使URL被击中。 我怎么把这个改成每次6000? 我在这里先向您的帮助表示感谢

快速会话不会保存任何值

在我重新加载或移动到另一个页面之前, console.log(req.session)正好打印我保存的值,但不再是。 我尝试了req.session.save(),req.session.regenerate({..})或同时使用.save()和.reload()。 我不明白为什么会发生。 我正在为这个6个小时挣扎。 app.js var session = require('express-session'); app.use(session({ cookie: { maxAge:30 * 60 * 1000, expires: 30* 60 * 1000, httpOnly: true }, rolling: true, resave: true, saveUninitialized: true, secret: '~~~~~' })); 路线/ index.js router.get('/', function(req, res, next) { req.session.test = true; req.session.save(); console.log(req.session); res.render('index'); }); router.get('/reg', function(req, res){ console.log(req.session); res.render('another'); } […]