#javascript #reactjs #cookies #token #react-jsx
#javascript #файлы cookie #токен #reactjs
Вопрос:
В моем проекте ReactJS в настоящее время я сохраняю cookie-файл типа cookie.save('token', received_token, { path: '/'} );
и извлекаю его из локального хранилища следующим образом: cookie.load('token');
.
Итак, мне было интересно, есть ли способ установить время истечения срока действия при .save()
получении токена и по истечении срока действия автоматически удалить его из локального хранилища?
Благодарим вас и принимаем ответ голосованием «За».
Ответ №1:
Вы можете передать maxAge
or expires
в options в качестве третьего параметра в cookie.save
функции
Синтаксис:
reactCookie.save(name, val, [opt])
Пример:
// maxAge Example
reactCookie.save("token", "token-value", {
maxAge: 3600 // Will expire after 1hr (value is in number of sec.)
});
// Expires Example
var tomorrow = new Date();
tomorrow.setDate(today.getDate() 1);
reactCookie.save("token", "token-value", {
expires: tomorrow // Will expire after 24hr from setting (value is in Date object)
});
Документация: https://github.com/eXon/react-cookie#reactcookiesetrawcookiecookies
Комментарии:
1. Прежде чем я приму ответ и проголосую за, несколько вопросов, если вы не возражаете. Должен ли я объявлять это как
reactCookie.save(name, val, [expires: 5000])
? Не могли бы вы уточнить, когда использовать одно поверх другого, междуmaxAge
иexpires
? Прочитайте документацию, но, похоже, не можете уловить разницы. Кроме того, при этомexpires
автоматически ли удаляется сам токен из локального хранилища? Спасибо за ответ!2. @Walter Я добавил пример только в ответ, а также добавил разницу между обоими вариантами
3. Срок действия локального хранилища @Walter не истекает, и пользователь не может определить, когда его удалять.
4. Понял. Спасибо за разъяснение. Итак, что происходит после истечения срока действия токена? Как я могу заставить его удалить себя из локального хранилища, когда это произойдет?
5. в случае локального хранилища вы просто устанавливаете значение этого локального хранилища равным
null
илиundefined
для сброса или истечения срока действия. и в случае cookie вы должны получитьundefined
, если попытаетесь получить доступ к cookie с истекшим сроком действия