Tag: cookie

通过Passport使用cookieSession

我想用Passport使用Cookie会话存储,因为内存存储不是为生产而devise的: Warning: connection.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process. 这是我的Express初始化: app.use(express.bodyParser({keepExtensions:true})); app.use(express.cookieParser(cookieSecret)); app.use(express.cookieSession({ key: cookieKey, secret: cookieSecret, maxAge: sessionTimeout })); app.use(passport.initialize()); app.use(passport.session()); app.use(express.methodOverride()); app.use(express.static(__dirname + '/public')); 如果我将express.cookieSession更改为express.cookieSession ,一切正常。 使用cookieSession用户login成功时,用户在下次加载页面后不再login。 任何提示如何使护照与cookie会议工作? 我正在使用Express 3.0.0

cookie maxAge和expiry之间有什么区别?

我在NodeJS,快递应用程序,我正在使用Cookie的一些function,我的应用程序。 我需要设置cookie的一个月的生活。 为此,我将cookie maxAge设置为days*hoursPerDay*minutesPerHour*secondsPerMinute*1000以实现一个月的时间30*24*60*60*1000 = 2592000000 。 然而,在我的cookies的浏览器到期时间接近10个小时。 我错过了什么,我的计算错了? 或者我正在使用错误的属性( maxAge )? 还有什么是cookies的maxAge和expiry属性之间的区别?

不同的GET和POST cookie?

在node.js中,我创build了一个服务器并试图打印headers.cookie。 但有一点我注意到,当我执行GET方法时, request.header.cookie给出了我期望的结果,但是当我使用AJAX执行POST方法时, request.headers.cookie返回空。 使用GET创build的Cookie与使用POST创build的Cookie不同?

如何克服IE11cachingexpress.js cookie会话?

我正在使用express.js cookie会话来存储我login的用户会话。 每次我login新用户时,我将userId放在当前会话中,并将此用户id分配给我在我的数据库上为他创build的user._id: req.session.userId = user._id; 最终当新用户提交我的login表单时,获取请求将被发送到包含我的用户数据的我/用户宁静服务,如果该数据(标识符)没有存储在我的数据库中,则新用户将在我的数据库中注册并为他创build一个新的会话cookie。 req.session.userId = user._id; res.status(200).send({'userId': user._id}); 我在chrome,firefox和IE11上testing了上述function当使用chrome / firefox时,login后的响应代码是200,UI提交的用户正在迎接。 但是,当使用IE11第一个提交的用户将迎接UI,但是当另一个用户被提交时,他不会被迎面而来,显然IE11caching第一个login会话cookie(响应代码304),除非在dev中打开一个标志控制台always refresh from server ,但这不是浏览器的默认选项。

这是一个Node.js和Socket.io的声音authenticationscheme吗?

我正在尝试使用Node.js(Express),Socket.io和Redux / ReactJS来设置用户login系统。 这是我正在采取的方法: 用户一进入Web应用程序,用户就通过Socket.io连接。 通过socketio-auth用户需要进行身份validation并将其用户名和密码传递给服务器。 然后,使用socket.io-express-session ,就像本例中一样 ,我使用用户名和密码设置了一个cookie,这样每次他们回到网站,都可以通过socketio-auth进行重新authentication。 (我意识到我可以保存cookie中的唯一标记,而这会更好吗?) 在服务器上,在进行身份validation时,我只是将他们的详细信息与他们的socketId一起保存到Redux存储中,以便在会话持续的每个Socket.io请求中使用。 假设这是通过SSL完成的,这是安全的吗? 你会build议什么改变? 我试图尽可能简单但仍然非常安全。

Cookie在Koa / Express请求中是“未定义的”

我使用Koa JS框架进行jwtauthentication。 所以,基本上当用户login时,我设置了一个jwt令牌(签名)到用户的浏览器cookie,这似乎工作正常,如下所示(Chrome cookie设置): (www.localhost.com而不是本地主机是因为我编辑了我的主机文件,但这不应该设置/获取cookie) 但是,问题是当我发送POST请求到我的本地Koa服务器时,jwt cookie是未定义的。 我正在做的validation令牌是这样的: routes.js const Router = require("koa-router"); const router = new Router(); router.post(`api/authenticate`, function* () { const jwt = this.cookies.get("jwt", { signed: true }); //jwt is undefined!! if (!jwt) this.throw("Invalid or expired token!"); this.status = 200; }); //… app.use(router.routes()); app.use(router.allowedMethods()); 这里, this.cookies.get(“jwt”)返回undefined。 POST请求使用带有“withCredentials:true”标头和有效的CSRF标记的AXIOS库发送: authenticate.js axios.post("api/authenticate", {}, { headers: { […]

使用moment.toDate()时,Express 4.13.4中Cookie的有效期限被忽略

我正在尝试设置一个特定的有效期为3个月的cookie。 我可以把cookie设置好,但是为它设置的失效不起作用。 我用momentJS来创build一个我想要的date对象。 从控制台输出正确的时间,但是cookie没有正确的值,它的价值将在几分钟内而不是从date起的3个月内过期。 // Create the date the cookies will expire on var cookieDate = moment().add(6, 'months').toDate(); console.log(cookieDate); res.cookie('username', user.username, { expires: cookieDate }); 我查看了文档,它只是要求将一个Date对象传递给它。 我也看了看周围的stackoverflow和唯一我能find的是这告诉OP使用req.session.cookie这似乎不正确,因为你应该设置一个cookie响应客户端,而不是在一个会话。

节点Js – 会话pipe理

我有一个简单的应用程序,它将login一个用户,并根据他的angular色将让他使用一个特定的API(比如normal / admin..view / update分别)。 我正在使用MYSQL来validation用户和连接池来pipe理许多应用程序的连接。 这是我如何pipe理会议, app.use(expressSession({ cookieName: 'session', secret: 'mysecret', duration: 15 * 60 * 1000, })); login时, app.post('/login',function(req,res){ Authenticate(req.body.username,req.body.password,function(err,fname,user){ if(!err) { req.session.name=user; res.send("Welcome " + fname); } else{ res.send("There seems to be an issue with the username/password combination that you entered"); } }); }); 每当我想访问任何特定的API,我会检查这个会话名称。 app.post('/updateInfo',function(req,res){ if(req.session.name){ // My logic – i […]

使用websocket在cookie中刷新一个jwt标记

我对刷新访问/ jwt令牌的一般stream程感到困惑。 我使用socketcluster作为客户端和服务器之间的主要通信方式。 最初的请求(服务的HTML)是由快递。 客户端可以通过github使用passport.js github策略login passport.use(new githubStrategy({ clientID:'********', clientSecret:'*******', callbackURL:'http://localhost:3000/auth/github/callback' }, function(accessToken,refreshToken,profile,done){ profile.token = jwt.sign({ id:profile.id, username:profile.username },'rush2112') return done(null,profile) } )) 带护照的社交策略似乎使用我忽略的会话,并为客户端login生成一个jwt令牌。 成功login,我使用下面的浏览器cookie中存储jwt app.get('/auth/github',passport.authenticate('github')) app.get('/auth/github/callback',passport.authenticate('github',{failureRedirect:'/fail'}), function(req,res){ var text = JSON.stringify({id_token: req.user.token}) res.cookie('id_token',text,{ expires: new Date(Date.now() + 900000), httpOnly: true }) res.redirect('/') } ) 然后我可以使用socket.request.headers.cookie从套接字访问cookie 然后我继续使用解码 var cookie = decodeURIComponent(socket.request.headers.cookie) var id_token = JSON.parse(cookie.split('=')[1]) […]

Phantomjs应该不会发送cookie

我正在使用phantomjs,特别是phantom-prebuilt在npm查看我的节点快递应用程序提供的页面,但它不是发送cookie,尽pipe在同一个域名。 我怎样才能得到幻像正确发送cookies? var system = require('system'); var page = require('webpage').create(); phantom.addCookie({ domain: 'domain', name: 'ru.sid', value: 'aValue' }); console.log(JSON.stringify(phantom.cookies[0]); /* This is what is logged { domain: '.domain', httponly: false, name: 'ru.sid', path: '/', secure: false, value: 'aValue' } */ page.open('domain/anotherPath') //cookie is not sent