Получите 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