Сохранение пользовательских сессий с Httponly Cookies в React - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь выяснить, как лучше всего получать пользовательские данные / сохранять пользовательские сеансы на стороне клиента через React при использовании файлов cookie HttpOnly для хранения данных сеанса.

Я думал о том, чтобы сделать что-то вроде:

useEffect( () => {

const getSession = async () => {
   const session = await fetch('/session/current')

   if(session){
       .... there is an active session
        .... set the local state to hold user data
      }   
   }

   getsession();
}

Итак, проблема, которую я пытаюсь выяснить, заключается в том, что когда пользователь входит в систему и закрывает браузер, а затем снова входит в мой веб-сайт. Как проверить, что у пользователя все еще есть действительный сеанс, а затем отправить необходимые данные пользователя на клиентскую сторону, чтобы узнать, что пользователь аутентифицирован?

Когда пользователь входит в систему и закрывает браузер, все еще существует действительный сеанс HttpOnly cook ie на стороне сервера. Является ли лучший способ просто достичь конечной точки, посмотреть, существует ли допустимый сеанс, а затем вернуть данные пользователя?

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Нет способа справиться с этим на стороне клиента, так как это httponly cook ie. Вам нужно отправить повара ie на сервер для проверки сеанса. Если пользователи закрывают и снова открывают свой браузер, они теряют свои куки. Для того, чтобы они оставались в системе, вам нужно будет отследить некоторую другую информацию от пользователя, такую ​​как его IP-адрес, ОС, тип браузера и т. Д. c, и сохранить ее в виде кеша памяти для ttl. Но так делать небезопасно.

0 голосов
/ 02 марта 2020

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

Или упомяните ttl, так что у него тоже будет время истечения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...