Введение

Каждое приложение использует методы аутентификации для аутентификации пользователей, пока пользователь пытается войти в систему. Некоторые могут использовать аутентификацию на основе файлов cookie или могут использовать аутентификацию jwt для аутентификации пользователей.

JWT (JSON Web Token) - это стандарт аутентификации, который генерирует зашифрованный токен, когда учетные данные пользователя совпадают, и пользователь вошел в систему. Этот токен используется для аутентификации пользователя для всех HTTP-запросов, которые пользователь собирается выполнить после входа на веб-сайт.

Надеюсь, что вы все знакомы со схемами.

Чтобы начать процесс аутентификации, пользователь должен быть зарегистрирован.

После успешной регистрации пользователя теперь он может войти в систему.

мы сохраним поле имени пользователя как уникальное, чтобы не было повторяющегося имени пользователя. Используя запрос findOne, он попытается проверить, присутствует ли имя пользователя в базе данных, если имя пользователя присутствует в db, тогда мы получим информацию о пользователе в форме user.

bcrypt - это алгоритм хеширования паролей, который стандартизирует обработку и хеширование паролей. compareSync сравнивает зарегистрированный пароль пользователя с паролем, введенным пользователем в момент входа в систему.

если пароль совпадает, то токен будет сгенерирован путем передачи идентификатора пользователя и секретного ключа, а срок действия токена - 1 час. Во внешнем интерфейсе мы получим токен в теле ответа, и токен будет храниться в localstorage браузеров.

Теперь мы будем отправлять токен в качестве заголовка для каждого HTTP-запроса, для чего мы будем использовать перехватчики в angular. Перехватчики предоставляют механизм для перехвата и / или изменения исходящих запросов или входящих ответов. Перехватчики HTTP в основном используются для ведения журнала.

В поле авторизации заголовков мы передаем Bearer и токен. Bearer - это схема аутентификации HTTP, которая включает в себя токены безопасности, называемые токенами bearer. Перехватчики преобразуют исходящий запрос, прежде чем передать его следующему перехватчику.

Теперь токен будет проверен для целей проверки, если токен будет успешно проверен, тогда пользователь войдет в систему.

Метод split () используется для сохранения носителя в массиве в позиции индекса [0] и токена в позиции индекса [1]. jwt.verify («токен», «секретный ключ») проверит токен с секретным ключом.