Я использую passportjs и express-session для создания сеанса на основе файлов cookie. Я хочу сохранить значение отправляемого куки в хранилище сессии. Но так как это только cookie HTTP, к нему нельзя получить доступ через javascript. Я попытался прочитать заголовок set-cookie
из javascript, но не работает только с HTTP-файлами cookie.
Чтобы преодолеть это, я пытался отправить файл cookie клиенту, но в отдельном заголовке или, возможно, в ответе JSON. Но я потерпел неудачу здесь. Непосредственно перед отправкой ответа клиенту я попытался получить заголовки, используя request.getHeaders()
, но у него нет заголовков cookie (и, следовательно, я не получаю значение cookie)
Ниже приведен фрагмент, который использует passportjs
для установления сеанса.
app.get('/login', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err) { return next(err); }
if (!user) { return res.redirect('/login'); }
req.logIn(user, function(err) {
if (err) { return next(err); }
return res.redirect('/users/' + user.username);
});
})(req, res, next);
});
Есть ли способ получить доступ к значению cookie с помощью Express до отправки клиенту?
Я также пытался найти значение cookie внутри request.session.cookie
, но у этого объекта нет значения cookie, отправленного клиенту.