Где хранить конфиденциальные данные пользователя? - PullRequest
0 голосов
/ 03 ноября 2019

Я занимаюсь веб-разработкой с использованием React, Redux и React-Cookie. В этой сети у меня есть система входа в систему, в которой я отправляю запрос POST в свой Backend API, который отправляет мне обратно данные пользователя, которые мне нужны для моих компонентов (включая токен для файла cookie), и мне нужно, чтобы эти данные были постоянными. ,В настоящее время я храню пользовательские данные в своем хранилище, а логическое значение isAuthenticated в локальном хранилище клиента (которое я не знаю, насколько небезопасна эта процедура). Где я должен хранить эти данные? может в печенье? Также, если у вас есть какой-то совет относительно того, как я храню аутентифицированную логическую переменную, было бы очень хорошо.

1 Ответ

1 голос
/ 03 ноября 2019

Обычная практика - хранить объект user в локальном хранилище и иметь другой ключ для токена (или вы можете встроить токен в объект пользователя).

Нет необходимости в authenticated boolean, вы должны проверить, существует ли пользователь в локальном хранилище, и если он существует, то ваш пользователь аутентифицирован.

в вашей функции logout makeобязательно удалите пользовательский ключ из вашего локального хранилища, поэтому приведенная выше проверка вернет false.

function isAuthenticated() {
 return !!localstorage.getItem('user');
}

function login(credentials) {
  fetch(....)
  .then(res => res.json())
  .then(({user, token}) => {
    localstorage.setItem('user', {...user, token});
   })
}

function logout() {
  localstorage.removeItem('user');
}
...