Являются ли токены доступа избыточными из-за токенов обновления?

#javascript #express #authentication #access-token #refresh-token

#javascript #выражать #аутентификация #токен доступа #refresh-token

Вопрос:

Я новичок в webdev и внедрил аутентификацию на основе токенов доступа и обновления в своем экспресс-проекте. Однако, чем больше я просматриваю реализацию, я начинаю задаваться вопросом, почему существуют токены доступа, когда кажется, что токены обновления делают их избыточными. Возможно, это просто моя реализация.

Для любой задачи, требующей аутентификации, я отправляю файл cookie как с токеном доступа, так и с токеном обновления на сервер аутентификации. Он просматривает токен доступа, и если он действителен и не истек, он отправит 200 обратно и позволит продолжить работу любому промежуточному программному обеспечению express. Однако, если срок его действия истек, затем он запросит базу данных, чтобы узнать, существует ли соответствующий токен обновления, и, если да, отправит новый токен доступа.

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

Единственная причина, по которой я могу думать о существующих токенах доступа, — это уменьшить частоту запросов страницы к базе данных, но это кажется слишком простым. Поскольку я довольно новичок в этом, я знаю, что, должно быть, мне не хватает какой-то более масштабной концепции. Кто-нибудь может меня просветить?

Комментарии:

1. Для меня это звучит как OAuth. Вы можете прочитать об этом подробнее и посмотреть, дает ли оно вам нужное объяснение.

2. Прочитайте это, hasura.io/blog/best-practices-of-using-jwt-with-graphql