Пользовательская (не OAuth) реализация маркера обновления

Я работаю над приложением, которое использует систему аутентификации на основе токенов, где пользователь предоставляет свое имя пользователя / пароль и получает токен взамен (токен также сохраняется в базе данных). Затем последующие запросы будут включать этот токен в качестве пользовательского заголовка, и мы можем использовать его для идентификации пользователя. Это все отлично работает.

Прямо сейчас, если пользователь не авторизуется в течение 3 дней, мы теряем токен. Я немного читал о токенах обновления в OAuth, и мне было интересно, смогу ли я как-нибудь реализовать нечто подобное. т.е. при предоставлении токена авторизации я также предоставляю токен обновления, который можно использовать позже для запроса нового токена авторизации. С точки зрения безопасности, похоже, что это похоже на то, что пользователь никогда не истекает токен авторизации. Должен ли я отправлять дополнительную информацию с токеном обновления для проверки пользователя?

1 ответ

В OAuth2 сервер ресурсов и сервер авторизации часто не совпадают.

Токен обновления отправляется обратно клиенту при выдаче токена доступа и при обновлении токена. Клиент должен аутентифицировать себя (используя идентификатор клиента и секрет клиента), чтобы использовать токен обновления. Сервер ресурсов никогда не видит токен обновления.

Кроме того, токены доступа не хранятся на стороне сервера, поскольку имеют ограниченный срок службы. Жетоны обновления сохраняются и поэтому могут быть отозваны.

Другие вопросы по тегам