Tag: cookie

什么时候使用快速会话创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){ […]

expression不同的到期

我有以下代码在Express中创build会话。 app.use(session({ secret: 'randomstring', saveUninitialized: false, resave: false, cookie: { secure: true, maxAge: 60000 * 60 /* 1 hour */ } })); 我主要使用这个将会话数据存储在Passport.js中。 目前1小时后,用户会自动注销。 或者会话结束,用户注销。 有没有简单的方法在会话中存储更多的数据,并有不同的信息到期date? 所以说我想Passport.js( req.session.passport.user )会话数据有一个1小时到期。 我想要另一个数据片段(例如req.session.myDataA )的有效期为30天。 而我希望另一块数据( req.session.myDataB )没有到期并永远保持活动状态。 在Express Sessions中是否有一种简单的方法来实现这种行为?

我们如何在Web应用程序中进行身份validation?

对不起,我写了很多来解释我的情况,如果你没有时间或没有心情去阅读所有这些只是跳到问题。 即使回答其中的一个有助于我的情况,谢谢:D 我正在尝试在node.js中编写一个Web应用程序,但是由于我对于Web太新,我不知道如何编写Weblogin系统。 我不想使用基本或摘要http身份validation,我希望它像正常的login系统与http表单和不同的页面显示不同types的用户不同的内容。 我search了一下,我知道基础知识,但是还不够。 这是我得到的: 我们检查用户,并从数据库中的POST数据传递 如果正确,我们给客户一个新的会话,并将其保存在数据库中。 客户端将会话保存为一个cookie,并将其发送到每个页面请求中。 服务器检查会话并提供给用户的内容。 这是我不知道的部分: 我们如何生成一个会话? 我们如何将其发送给客户? 它如何保存在cookie中? 什么时候应该过期? 如果过期会发生什么? 我们应该做什么? 还有什么我应该知道的? 如果你可以请,给我一些节点的例子。 预先感谢您:D

节点js http post请求保存cookie

我正在调用来自节点的http post请求(来自另一个第三方服务器的login请求),并希望为将来的http请求保存cookie。 var options = { host: 'hostname.com', port: '80', path: '/login.php', method: 'POST' }; var data = qs.stringify({ uname: "validUsername", password: "validPassword" }); var req = http.request(options, function(response) { console.log(response.statusCode); console.log('HEADERS: ' + JSON.stringify(response.headers)); // console.log('Cookies: ' + response.getHeader("Set-Cookie")); response.setEncoding('utf8'); response.on('data', function (chunk) { console.log('BODY: ' + chunk); }); }); req.on('error', function(e) { console.log('problem […]

Node.js Express禁用自动会话创build

如果我通过app.use(express.session({secret: "12345"}));启用快速会话function, 当用户第一次碰到页面时会话cookie被设置。 如何禁用此行为并手动决定何时创buildcookie,例如成功login后? 我知道我可以手动构build一个cookie头,但我想留在express.session。

从API w / Express http-proxy存储令牌

我正在设置一个通用的React应用程序,并以此项目为基础。 我成功地代理请求(使用http代理 )到我的Laravel后端。 不过,我是Nodejs的新手,我不知道如何从代理服务器安全地存储JWT到客户端的最佳方法。 我最初的想法是将标记存储到localStorage,但问题是快速服务器将无法访问它。 所以我的下一个猜测是将其存储为一个cookie,但我不知道如何将其存储在客户端,或将其作为所有传出请求的头部(另外,我可能需要某种csrf中间件)。 那么,如何操纵我的api服务器的响应,将一个令牌放置在客户端设置的cookie中,然后将其用作所有api请求的载体令牌? // server.js const targetUrl = 'http://' + config.apiHost + ':' + config.apiPort; const app = new Express(); const server = new http.Server(app); const proxy = httpProxy.createProxyServer({ target: targetUrl, changeOrigin: true }); // Proxy to Auth endpoint app.use('/auth', (req, res) => { // on a successful login, i want […]

Nodejs Express3使用会话来检查用户是否login

我有以下的app.js代码 app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.enable('jsonp callback'); app.set('view engine', 'jade'); app.set('view options', {layout : false}); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.session({ secret : 'abcdefg' })); app.use(app.router); app.use(express.static(__dirname + '/public')); app.use(function(req, res, next){ res.locals.user = req.session.user; next(); }) }); 我正在努力,以便我的.jade视图上的以下代码将工作 – if(session.user) div#logoutsection.pull-right a#logout-btn.btn.btn-info.pull-right.top-bar-form-button(href='logout/') Logout p#loginprompt.pull-right.login-prompt #{session.user.username} logged In – else ul.pull-right li […]

nodejs连接会话cookie不在某些机器上设置

我在我的nodejs应用程序上有一个最小连接会话设置: connect.cookieParser(), connect.session({ secret: 'asdfg', cookie: { maxAge: 60 * 60 * 1000 }}), 但是,当在其他机器上testing我的网站时,会话cookie根本不会被设置。 在我的Mac上,Chrome和Firefox都像正常一样设置会话cookie。 在我的虚拟Windows上,会话cookie不会在Chrome或Firefox上设置。 在一个朋友的Windows上,会话显然没有被设置,但在另一个朋友的Windows上,会话似乎正在工作。 我检查了我的虚拟Windows Chrome上的Cookie设置和标题,但似乎没有什么不同,它只是拒绝创build一个cookie … 任何想法为什么会话cookie显然会被设置在一些机器上,而不是其他的?

Connect的会话中间件的签名cookie如何工作?

我想要解释一下connect.sid cookie如何在Connect Node.js框架中工作。 我注意到他们是形成的, s:hash.signature 我不明白如何使用签名,当散列能够被用来从内存存储或redis存储访问会话数据。 另外,我不明白为什么s:甚至在cookie中; 这是什么目的。 我听说签名被用来“签名”散列。 究竟是“签名”还是“签名”? 我也需要对这个过程进行解释。 谢谢!

如何在Node.js中生成会话ID?

我试图学习Node.js而不使用任何第三方模块或框架。 我已经到了一个地步,我要弄清楚如何给login用户提供会话ID … 到目前为止,我知道我可以通过在头文件中设置会话ID来设置cookie: writeHead(200, {'set-cookie':'Math.random() ' } ); 然后我可以检索会话ID并稍后将其与数据库进行比较。 request.headers.cookie(request.url); 但是,我如何生成会话ID值? 我是编程新手。 我想到的第一件事是使用Javascript的Math.random(); 并使用该值来设置cookie(会话ID)。 在我看来,这感觉很愚蠢,但这是我能想到的。 我想如何使用Node.js生成会话ID,没有第三方模块,请准系统!