Должен ли я получить токен доступа от sessionStorage для каждого запроса?

1

Таким образом, в основном, когда я вхожу в систему, мой backend возвращает мне токен, поэтому я храню его так:

// var token is global
token = res.data.token;
sessionStorage.setItem("token", token);

И когда я выхожу из системы, я просто удаляю элементы из sessionStorage и перезагружаю var:

token = '';
sessionStorage.removeItem("token");

Затем во всех моих запросах я использую var для создания заголовка

{ headers: { "Authorization": "Bearer " + token } }

Но я не знаю, должен ли я хранить маркер var или просто получить доступ к хранилищу для каждого запроса, например:

{ headers: { "Authorization": "Bearer " + sessionStorage.getItem("token"} }

Сейчас я просто использую хранилище, если пользователь обновляет страницу, поэтому он не теряет контекст javascript, потому что я думал, что он более эффективен, чем доступ к хранилищу для каждого запроса, но я не знаю, что такое лучший подход к безопасности - или, что обычно делают разработчики?

Теги:
jwt
access-token
local-storage
session-storage

1 ответ

2
Лучший ответ

Это не имеет никакого значения с точки зрения безопасности; ни один из них более безопасен, чем другой.

Если вам нужен только токен при выполнении вызова ajax, не беспокойтесь о накладных sessionStorage его получение из sessionStorage. Эта операция не занимает сколько-нибудь значительного времени, конечно, не сравнивается с выполнением вызова ajax. Вам нужно будет только кэшировать результат в переменной, если вы используете его в узком цикле, выполняющем тысячи операций (или, возможно, сотни тысяч), пока пользователь их ждал. Вы можете захотеть его в переменной по другим причинам (например, удобство), но в случае, когда вы описываете, нет аргумента эффективности.

Общее правило: Беспокоитесь о производительности, если у вас есть проблемы с производительностью (но, знаете ли, не глупо делать то, что, как вы знаете, ужасно неэффективно...). :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню