Как повесить проверку аутентификации для всех страниц сайта?
Как можно сделать на чистом js, чтобы при каждом запросе на сервер, на фронте в запрос добавлялся заголовок с Authorization? Например, чтобы при загрузке страницы, скрипт брал из localstorage данные аутентификации и сервер на из основе уже решал какую страницу отобразить.
Semantic.Moscow, Я не могу понять, как нужно формировать заголовок в таком случае. Например я открываю браузер и захожу сайт, где уже был авторизован и он мне выдает мне страницу для аутентифицированного пользователя, без промежуточных результатов и тут я не могу понять, в какой момент браузер дал данные для аутентификации, чтобы пользователь увидел правильную страницу.
calculator212, за это отвечают кукисы - они передаются в HTTP-запросе,
через AJAX тоже можно,
например не стартовать сессию сразу (и не раздражать посетителя предупреждением о использовании кукисов на сайте), а передать (установить) только после авторизации,
тут же можете и localstorage задействовать,
но это уже совсем из другой сказки, ибо безопасно хранить данные в localstorage не очень то и получится - для этого есть сессии, с хранением всего важного на сервере.
если запросы генерируются скриптом и контент получается аяксом - просто добавляете заголовок, и в фетч и в xht для этого есть средства. Если же речь идет о переходе по ссылкам - то никак, этим рулит браузер.
Я не могу понять, как сделать так, чтобы сайт сразу понял, что я уже авторизован. Например я открываю браузер и захожу сайт, где уже был авторизован и он мне выдает мне страницу для аутентифицированного пользователя, без промежуточных результатов и тут я не могу понять, в какой момент браузер дал данные для аутентификации, чтобы пользователь увидел правильную страницу.
Если же речь идет о переходе по ссылкам - то никак, этим рулит браузер.
Можете рассказать про этот момент, просто если например мне оставят ссылку на тостер и я по ней перейду, то я зайду сюда сразу авторизованным, как добиться такого же поведения. Или тут делается через два запроса, например браузер отправляет запрос, сервер проверяет наличие данных в заголовке, если данных нет, то отправляет скрипт, который может получить данные из localstorage и после этого пользователя перенаправляет на нужную страницу?
мне оставят ссылку на тостер и я по ней перейду, то я зайду сюда сразу авторизованным, как добиться такого же поведения.
Куки.
Или тут делается через два запроса, например браузер отправляет запрос, сервер проверяет наличие данных в заголовке, если данных нет, то отправляет скрипт, который может получить данные из localstorage и после этого пользователя перенаправляет на нужную страницу?
Зачем хранить все в разных местах? Обычно все хранится в куки. И сервер не может "отправить скрипт", он может только перенаправить на другую страницу. При наличие правильного куки никакое перенаправление не нужно, авторизация происходит "налету".
calculator212, а при чем тут разные домены? Если вы заходите на тостер, то используется кука тостера. Ваша задача непонятна, если вы работаете с разными доменами, то и куки у вас будут для каждого домена свои. Или у вас другая задача, которую вы хреново описали, и к авторизации/идентификации она прямого отношения не имеет. И заголовки в том числе у вас могут ничем не помочь, так как CORS...