2016-03-26 6 views
0

Я использую express-session в моем проекте:Как настроить cookie в экспресс?

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-session будет генерировать печенье с именем server-session-cookie-id, когда я первый визит мое заявление.

Но в моей ситуации, я хочу, чтобы добавить некоторую информацию в куки, что-то вроде этого:

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

как я могу изменить печенье, когда печенье первый раз генерировать?


EDIT

Я думаю, что я задаю неправильный вопрос, что я хочу, когда первый визит моего заявления (любая страница), я просто создать печенье с именем uuid.

+0

Почему использовать uuid в cookie? Файл cookie уже уникален для конкретного соединительного браузера. – jfriend00

+0

@ jfriend00 Я думаю, что я просто задаю неправильный вопрос, я хочу добавить еще один файл cookie с именем 'uuid' – roger

ответ

1

Вы можете установить cookie с помощью res.cookie и node-uuid.

npm install node-uuid --save

var uuid = require('uuid');

Затем в промежуточном вашем основном приложении просто проверить для user объекта:

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

Если предположить, что у вас есть user объекта на объекте req запроса в случае использования express-session с passport.

+0

Я хочу изменить содержимое cookie ['server-session-cookie-id'], вы меняете имя 'server -session-куки-идентификатор? – roger

+0

Я опубликовал обновленный ответ, чтобы вы могли изменять содержимое файла cookie с помощью 'genid' из' express-session'. – roflmyeggo

+0

Прошу прощения, я думаю, что просто задаю неправильный вопрос, что я хочу, когда пользователь сначала посещает мое приложение (на любой странице), я просто создаю куки-файл под именем 'uuid'. – roger

1

Если вы действительно просто хотите, чтобы установить новое печенье с вашей UUID на него (как вы сказали в комментариях), то вы можете просто сделать это в экспрессе в ответ на любой входящий запрос:

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

Я хочу сгенерировать cookie с именем 'uuid', когда пользователь заходил на любую страницу моего приложения, когда я это называл? – roger

+0

@roger - В любом входящем запросе у вас есть обработчик маршрута Express 'app.get()' с нужной страницы или как промежуточное программное обеспечение в 'app.use()'. – jfriend00

Смежные вопросы