Ngx-auth без обновления-токена - PullRequest
0 голосов
/ 24 октября 2018

У меня есть задача сделать аутентификацию.Они хотят использовать ngx-auth - во-первых, они хотели реализовать, так как в документации написано 2 токена: доступ и обновление.Но теперь они хотят сделать это только с 1 токеном.Мой вопрос: 1) Стоит ли и возможно ли использовать этот пакет без маркера обновления?Я думаю, что пакет в основном основывается на этом токене обновления.2) Как проверить срок действия токена?Это по параметру exp как в базовом jwt?Как часто я должен проверять действительность токена - при каждом запросе или, например, каждые 15 минут?

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете использовать эту библиотеку.Чтобы игнорировать 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 и найдите любой другой способ обработки повторной авторизации.

...