Доступ к токенам, хранящимся в localStorage, со стороны сервера

Я пытаюсь реализовать функцию выхода из системы, которая работает на стороне сервера. В настоящее время эта функция удаляет только токены, хранящиеся в localStorage, при входе в систему, как показано ниже:

const logout = () => {
  localStorage.removeItem('accessToken');
  localStorage.removeItem('idToken');
};

Однако этот подход приводит к ошибке, поскольку localStorage недоступен на стороне сервера.

Вопрос: Как я могу эффективно удалить accessToken и idToken, хранящиеся в localStorage, со стороны сервера?

В контексте Nuxt 3 и удаления токенов из localStorage на стороне сервера я не пробовал напрямую изменять localStorage, потому что там он недоступен.

Чего я ожидал: Я ожидал, что функция выхода из системы успешно удалит токены (accessToken и idToken) с localStorage на сервере после успешного выхода из системы, как это происходит на стороне клиента. Это фактически приведет к аннулированию сеанса пользователя.

Если я не ошибаюсь, localStorage предназначен только для клиента. Следовательно, нет никакого способа сделать такое, ИМО.

kissu 17.06.2024 21:32

@kissu Должен ли я изменить способ хранения токенов вместо использования localStorage?

Alan Ari 17.06.2024 21:36

Если вы хотите взаимодействовать как с клиентской, так и с серверной стороной, вам действительно нужно будет использовать что-то вроде файлов cookie. Не знаю, как вы хотите управлять своими вещами, но это никогда не будет плохим началом. В противном случае вы можете сделать короткую аннулацию своих токенов, чтобы срок их действия истекал каждые 120 секунд или примерно так. Таким образом, вам не придется делать какие-либо взломы на внутренней стороне вашего приложения Nuxt.

kissu 17.06.2024 21:40

Прямо сейчас я удаляю токены на стороне клиента, как только сервер успешно ответит. Я думаю, что это хорошее временное решение, но со временем я хочу попробовать интегрировать Nuxt Auth в свой проект.

Alan Ari 20.06.2024 06:36

Для Nuxt доступно довольно много утилит авторизации, так что вы можете использовать официальный и чистый способ работы.

kissu 20.06.2024 09:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам следует useCookie сделать это. По определению у вас не будет доступа к localStorage, поскольку он является локальным для клиента и не отправляется на сервер.

Пример:

const accessToken = useCookie("accessToken");

accessToken.value = undefined; // this deletes cookie;

accessToken.value = "ezY.." // this sets the value of cookie;

Этот код будет работать как на стороне сервера, так и на стороне клиента.

Спасибо, мне удалось получить accessToken после использования useCookie. Потому что раньше я принудительно использовал localStorage на стороне сервера, но так и не нашел способа

Alan Ari 10.07.2024 10:53

Другие вопросы по теме