Ответ 1
Я думаю, что самая большая проблема заключается в том, что сам OAuth2 не говорит вам, как выглядят детали реализации.
Чтобы процитировать RFC:
Маркер может обозначать идентификатор, используемый для получения авторизации информации или может содержать информацию авторизации в (т.е. токен-строка, состоящая из некоторых данных и подпись). Дополнительные учетные данные аутентификации, которые выходят за рамки объем этой спецификации может потребоваться для того, чтобы чтобы использовать токен.
Доступ к токенам может иметь разные форматы, структуры и методы (например, криптографические свойства) на основе ресурса требования безопасности сервера. Атрибуты доступа к токену и методы, используемые для доступа к защищенным ресурсам, выходят за рамки эта спецификация и определяется сопутствующими спецификациями, такими как как [RFC6750].
Например, вы можете использовать JWT для проверки запроса или использовать токен только как идентификатор и попросить услугу для этого ресурса разрешен токен.
В зависимости от вашего провайдера OAuth2 реализация может меняться, поэтому моя догадка заключается в том, что инфраструктура может предоставить вам общую вещь (извлечь токен для вас), или ей придется реализовать все возможные реализации OAuth2, что представляется невозможным при этом точка.
Я лично использовал pauldijou/jwt-scala в прошлом, на что вы можете взглянуть.