Я пытаюсь внедрить JWT в моей системе аутентификации, и у меня есть несколько вопросов. Чтобы сохранить токен, я мог бы использовать файлы cookie, но также можно использовать localStorage
или sessionStorage
.
Какой будет лучший выбор?
Я прочитал, что JWT защищает сайт от CSRF. Однако я не могу представить, как это будет работать, если я сохраню токен JWT в хранилище файлов cookie.
Как бы защитить его от CSRF?
Обновление 1
Я видел несколько примеров использования, например:
curl -v -X POST -H "Authorization: Basic VE01enNFem9FZG9NRERjVEJjbXRBcWJGdTBFYTpYUU9URExINlBBOHJvUHJfSktrTHhUSTNseGNh"
Как я могу реализовать это, когда я делаю запрос на сервер из браузера? Я также видел, что некоторые реализуют токен в URL-адресе:
http://exmple.com?jwt=token
Если бы я сделал запрос через AJAX, тогда я мог бы установить заголовок как jwt: [token]
, а затем я мог бы прочитать маркер из заголовка.
Обновление 2
Я установил расширение расширенного клиента REST Client Google Chrome и смог передать токен в качестве настраиваемого заголовка. Можно ли установить данные заголовка через Javascript при выполнении запроса GET на сервер?