Начал изучать тему авторизационных токенов и что-то туплю в понимаании как это работает.
Если я ничего не напутал, то причины следующие:
Если мы AT(access токены) положили в куки, то тогда есть риск CSRF-атаки.
То есть если на сайте а.com(вредоносный сайт) встроили форму, спрятали ее и автоматически сделали запрос на сайт b.com например чтобы поменять пароль на b.com, то в этом случае, если пользователь уже авторизирован на сайте b.com(есть access token этого сайта), этот самый access token отправится вместе с запросом автоматически.
И получается что пароль будет успешно изменен на сайте b.com, хотя пользователь об этом не знает.
По этому принято хранить access токен в localStorage, а не куках,- Я правильно понимаю цепочку?
Если так, тогда что мешает хакеру на сайте а.com через js зайти в localStorage и получить access токен, после чего встроить этот токен в заголовок запроса и точно также поменять пароль?
Максим Ткачев, просто очень многие хранят именно там. К тому же такие люди как Дмитрий Лаврик, Вадилен Минин, Илья Климов тоже все говорят, что хранить access token нужно в localStorage.
Если хранить в сессии хороший вариант, но тогда получается, что каждый раз придется перелогиниваться при закрытии браузера,- что не очень удобно.
Про хранить в бд не очень понял,- может пожалуйста поподробней описать этот способ?