2016-03-26 20 views
0

Projemde express-session kullanıyorum: Öncelikle benim uygulamayı ziyaret ettiklerindeTanımlama bilgisi nasıl ifade edilir?

app.use(session({ 
    name: "server-session-cookie-id", 
    secret: 'express secret', 
    maxAge: 1000 * 3600 * 24, 
    saveUninitialized: true, 
    resave: true, 
    store: new RedisStore({client: redisClient, ttl: 260, db: 2}), 
})) 

express-sessionserver-session-cookie-id adında bir çerez oluşturacaktır.

Ama benim durumda böyle bazı çerezindeki bilgilerin, bir şeyler eklemek istiyorum: çerez ilk kez oluştururken

cookie['server-session-cookie-id'] + uuid 

nasıl çerez değiştirebilirim?


DÜZENLEME

Ben, sadece uuid adında bir çerez oluşturmak istediğim şey önce benim uygulama (herhangi bir sayfa) ziyaret ettiğinde ise, yanlış soruyu sormak düşünüyorum.

+0

Neden Çerezde bir uuid kullanın? Çerez zaten belirli bir bağlantı tarayıcısına özgüdür. – jfriend00

+0

@ jfriend00 Sadece yanlış soruyu soruyorum, "uuid" isimli başka bir çerez eklemek istiyorum – roger

cevap

1

res.cookie ve node-uuid öğelerini kullanarak bir çerez ayarlayabilirsiniz.

npm install node-uuid --save

var uuid = require('uuid');

Sonra ana uygulama sizin katman sadece bir user nesne için kontrol edin:

app.use(function(req, res, next) { 
    if (!req.user) { 
     res.cookie('uuid', uuid.v4()); 
    } 
    next(); 
} 

sen durumda req istek nesne üzerinde bir user nesne var varsayarsak express-session'un passport ile kullanılması.

+0

Çerez içeriğini değiştirmek istiyorum ['server-session-cookie-id'], 'server' adını değiştiriyor musunuz -session-cookie-id '? – roger

+0

Güncellenmiş bir cevap gönderdim, böylece cookie içeriğini 'express-session'' genid' kullanarak değiştirebilirsiniz. – roflmyeggo

+0

Özür dilerim, sanırım yanlış soruyu soruyorum, istediğim şey, kullanıcı ilk kez başvurumu ziyaret ettiğinde (herhangi bir sayfa), sadece 'uuid' adında bir çerez oluşturuyorum. – roger

1

Eğer gerçekten sadece (eğer yorumlar dedi gibi) üzerinde sizin uuid ile yeni bir çerez ayarlamak istiyorsanız, o zaman Gelen her isteğine yanıt olarak Express'te yapabilirsiniz:

res.cookie('uuid', uuid); 
+0

Kullanıcı, uygulamamdaki herhangi bir sayfayı ziyaret ettiğinde 'uuid' adında bir çerez oluşturmak istiyorum, ne zaman aradım? – roger

+0

@roger - İstenilen sayfadan veya app.use() 'de ara katman yazılımı için bir Express' app.get() 'rota işleyicisine sahip olduğunuz herhangi gelen bir istekte. – jfriend00

İlgili konular