Вы можете использовать эту библиотеку.Чтобы игнорировать RefreshToken, просто переопределите соответствующий метод, чтобы ничего не делать.
Чтобы проверить токен декодирования действительности (base64) и проверьте атрибут exp
, чтобы узнать, истек ли срок действия или нет.Вы должны делать это перед каждым запросом через HTTP_INTERCEPTOR
.Если срок действия токена истек, запросите новый и повторите исходный запрос.
Большая проблема заключается в как создать токен с истекшим сроком действия, если вы не хотите использовать токены истечения срока действия? Вы не можете сохранить имя пользователя ипароль на стороне клиента.Backend должен предоставить некоторую конечную точку, которая позволяет регенерировать токен путем передачи устаревшего.
Токен не должен быть действительным в течение длительного времени.Если ваши клиенты не хотят обновлять токены, а может быть?хочет сделать токены действительными, например, для.Затем в течение 24 часов вы можете поместить IP-адрес клиента в токен и проверять его при каждом входящем запросе.Это не обычный подход, но он подходит для «жестких» клиентов, которые не следуют стандартам (например, дополнительный механизм безопасности).
@ Edit
Я проверил ngx-auth sourceКод и подход к обновлению токена немного отличаются.Автор, если эта библиотека обновляет токен, когда сервер возвращает 401 Unauthorized
клиенту.В этом случае вам не нужно проверять атрибут exp
.Просто перехватите все входящие ответы, и если статус 401, это означает, что мы должны обновить наш токен.
Служба токенов в этой библиотеке - просто абстрактный интерфейс без логики. Вы должны расширить класс AuthService и предоставить собственную реализацию для определенных методов.
Пожалуйста, проверьте ngx-auth-example хранилище https://github.com/serhiisol/ngx-auth-example/blob/master/src/app/shared/authentication/authentication.service.ts
Здесь у вас есть простая реализация этой библиотеки.
Вы не хотите использовать токены обновления.В этом случае переопределите метод refreshToken
и найдите любой другой способ обработки повторной авторизации.