В вашем коде есть одна проблема, которую я вижу в строке:
authHeaders.Authorization = 'Bearer ' + sessionStorage.setItem('accessToken');
sessionStorage.setItem
метод имеет два обязательных параметра и выдать ошибку без него, при выполнении этой команды в консоли разработчика должна быть указана ошибка js.Правильное использование для sessionStorage:
// Save data to sessionStorage
sessionStorage.setItem('key', 'value');
// Get saved data from sessionStorage
let data = sessionStorage.getItem('key');
// Remove saved data from sessionStorage
sessionStorage.removeItem('key');
// Remove all saved data from sessionStorage
sessionStorage.clear();
Чтобы ответить на ваш второй вопрос
«Действительно ли безопасно отправлять токен с помощью AJAX? Потому что все коды появляются на стороне клиента.» Идея состоит в том,генерировать некоторые accessToken на сервере, используя учетные данные пользователя, который действителен в течение ограниченного времени.Преимущество заключается в том, что вы можете авторизовать последующий запрос, используя authToken, до тех пор, пока он не будет действителен, и вам не нужно хранить реальное имя пользователя и пароль для авторизации каждого запроса.Также, добавив некоторый механизм для обновления токена безопасности, если сеанс активен в течение более длительного периода, вы можете запретить пользователю выходить из системы / запрос на повторную авторизацию.
Чтобы устранить проблему безопасности, реальные учетные данные пользователя не сохраняются, и токен авторизации имеет ограниченное время действия.Например, если ваш токен безопасности имеет срок действия 30 минут, если пользователь покинул компьютер через 30 минут неактивного сеанса, этот токен использовать нельзя.
Также вы можете обновлять токен безопасности каждые несколько минут в сеансе и обновлять хранилище сеансов в фоновом режиме для дополнительной безопасности.Кроме того, сохранение их на локальном компьютере не так небезопасно в случае, если машина является частной, но для общедоступного компьютера также мы можем удостовериться, что очистим любое хранилище сеанса при выходе из системы / тайм-ауте, если оставить его как есть, то через некоторое время срок действия токена также истекает.
Надеюсь, это поможет