Получите cookie с реакцией
Мне нужно знать, подключен ли мой пользователь или нет. Для этого я хочу прочитать куки, которые я установил на стороне сервера, с помощью экспресс-сессии:
app.use(session({
secret: 'crypted key',
resave: false,
saveUninitialized: true,
cookie: { secure: false } // Put true if https
}))
Ответы
Ответ 1
Вы можете использовать пакет js-cookie
и установить его с помощью команды npm install js-cookie --save
.
import React from 'react';
import Cookies from 'js-cookie';
class App extends React.Component {
this.state = {
username: Cookies.get('username')
}
// more code....
}
Документация: https://github.com/js-cookie/js-cookie
НПМ: https://www.npmjs.com/package/js-cookie
Ответ 2
Я бы порекомендовал использовать universal-cookies
, так как его проще использовать. Имейте в виду, куки не имеет ничего общего с React. Они хранятся в браузере, и вы можете использовать API-интерфейс браузера для получения файлов cookie.
Вот пример того, как вы можете использовать universal-cookies
import React from 'react';
// other imports...
import Cookies from 'universal-cookie';
const cookies = new Cookies();
class App extends React.Component {
this.state = {
username: cookies.get('username')
}
// more code....
источник: https://www.npmjs.com/package/universal-cookie
Ответ 3
Если все, что вам нужно, это получить значение cookie по ключу, я бы предложил использовать простой javascript без каких-либо зависимостей.
В этом примере он получает значение cookie по ключу "имя пользователя" с помощью Regex.
let cookieValue = document.cookie.replace(/(?:(?:^|.*;\s*)username\s*\=\s*([^;]*).*$)|^.*$/, "$1");
https://developer.mozilla.org/en-US/docs/Web/API/document/cookie#Example_2_Get_a_sample_cookie_named_test2