#node.js #reactjs #cookies
#node.js #reactjs #файлы cookie
Вопрос:
У меня есть приложение, в котором я устанавливаю cookie из бэкэнда, например:
res.cookie('Authorization', 'Bearer ' token, {httOnly: true});
И после входа в систему я пытаюсь прочитать файл cookie на интерфейсе:
console.log('cookie', document.cookie)
Но, делая это, я не получаю никаких данных console.log()
.
Как прочитать файл cookie в моем примере?
Комментарии:
1.
httpOnly
буквально означает, что вы не можете прочитать файл cookie на стороне клиента (при условии, что он правильно написан в реальном коде).2. @Guy Incognito, не могли бы вы ответить на это, пожалуйста?: я отправляю свой токен из node js на интерфейс, используя файлы cookie, поэтому, когда я вхожу в систему, я получаю этот код, но возникает проблема, когда я хочу изменить страницу на react js, таким образом, на другой странице, которой у меня неттокен, как сохранить файл cookie с токеном на интерфейсе и передать его на другой странице?
3. Вероятно, вы получили бы ответы на свою реальную проблему, если бы спросили об этом напрямую, а не о предполагаемом решении .
Ответ №1:
-
Во-первых,
Authorization
это http-заголовок запроса, поэтому клиент должен быть тем, кто изменяет этот заголовок. -
Поскольку вы используете файл cookie для хранения токена jwt, нет необходимости использовать
Authorization
http-заголовок, поскольку файлы cookie автоматически отправляются вместе с последующими запросами. -
Вы могли бы просто отправить файл cookie, содержащий токен.
res.cookie('jwt', req.token, { httpOnly: true })
-
вы можете использовать
passport.jwt
промежуточное программное обеспечение для проверки наличия файлаjwt
cookieconst cookieExtractor = function (req: Request) { let token = null; const cookieName = config.jwt.cookieName; if (req amp;amp; req.cookies) { token = req.cookies[cookieName]; } return token; };
Комментарии:
1. например,
api/login
я отправляю jwt в cookie в пользовательском интерфейсе. После входа в систему я должен быть перенаправлен на/home
страницу, находясь на домашней странице, я делаю запрос get на privete route ehere с помощью node js. я проверяю, есть ли cookie с моим jwt, но как я могу передать cookie со страницы входа, после входа в систему, на домашней странице?