Поток аутентификации — это процесс подтверждения личности пользователя и управления его доступом к определенным частям приложения. Когда вы работаете с веб-приложением (например, с сайтом социальной сети), это включает в себя проверку того, является ли пользователь тем, кем он себя называет (вход в систему), а затем предоставление ему доступа к определенным функциям.
В React, когда вы хотите выполнить аутентификацию пользователей, вы обычно взаимодействуете с внутренним сервером, который выполняет тяжелую работу. Вот как это обычно работает:
После успешного входа в систему сервер отправляет обратно два важных токена:
Токен доступа:
Обновить токен:
После того как пользователь войдет в систему и получит эти токены, приложению необходимо сохранить их где-нибудь на устройстве пользователя. Здесь на помощь приходит localStorage:
Каждый раз, когда пользователь делает что-то, требующее взаимодействия с сервером (например, публикует статус или просматривает свои сообщения), приложение отправляет запрос на сервер с токеном доступа, прикрепленным в заголовке авторизации. Это сообщает серверу, что пользователь вошел в систему и ему разрешено выполнять действие.
Срок действия токена доступа: Если сервер отвечает ошибкой 401, это означает, что срок действия токена доступа истек. Затем приложение будет использовать токен обновления для запроса нового токена доступа.
Срок действия токена обновления: Если срок действия токена обновления также истек (что может произойти через долгое время), сервер снова ответит ошибкой 401. На этом этапе приложение перенаправит пользователя на страницу входа, попросив его снова войти в систему, чтобы получить новые токены.
Как только приложение получит новый токен доступа с помощью токена обновления, оно повторно отправит исходный запрос, который не был выполнен из-за истекшего срока действия токена. Таким образом, пользователь не будет отвлекаться.
Этот процесс гарантирует, что пользователь сможет оставаться в системе и безопасно использовать приложение без необходимости постоянно повторно вводить свои учетные данные.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3