Использование привратника без управления сессиями
Похоже, драгоценный камень привратника предполагает, что у вас есть сеанс, из которого вытащить текущего пользователя. По крайней мере, такое впечатление я получаю от метода конфигурации resource_owner_authenticator
, Это правильно?
Я надеялся реализовать приложение REST Only Rails без состояния (без сеансов), где вместо этого пользовательское состояние хранится в подписанном маркере доступа JWT и передается клиентом на сервер при каждом запросе. Я использую access_token_generator
генерировать подписанный JWT для потока предоставления пароля.
Также doorkeeper_authorize!
ищет токен доступа в базе данных, чтобы аутентифицировать каждый запрос и проверять срок его действия. Я бы предпочел просто проверить действительность подписи JWT, а затем убедиться, что срок действия JWT не истек, используя утверждение exp в полезной нагрузке JWT.
Можно ли таким образом использовать токен доступа JWT с привратником? Возможно, я упускаю что-то очевидное. Я уже взглянул на doorkeeper-jwt, но это не решает эти проблемы.
1 ответ
Если вы используете JWT, зачем использовать Doorkeeper на сервере API? Вместо этого просто напишите фильтр before, который получает JWT из заголовка вызова API и использует содержащуюся в нем информацию, чтобы решить, является ли вызов допустимым и допустимым. Мы помещаем роли, которые пользователь имеет в JWT, во все вызовы API и основаны на ролях, принимающих решения. Вы также можете использовать области в JWT, чтобы принять решение.