Я пытаюсь настроить сервер OAuth2 / API с помощью Symfony 4 и библиотеки PHP League OAuth 2 Server .
Проблема, с которой я столкнулся, заключалась в том, что интерфейс , определенный библиотекой OAuth2Server для AccessToken, требует функции, которая, как кажется, нуждается в доступе к базе данных в модели (это не так, как это делается с Symfony / doctrine).
Интерфейс требует, чтобысущность AccessToken реализует метод setUserIdentifier, но в Doctrine мы не устанавливаем внешний идентификатор напрямую, вместо этого мы передаем модель, например, ->setUser(User $user)
.(Мы также можем использовать EntityManger для создания ссылки на сторонний объект, но опять-таки нам потребуется доступ к EM в сущности AccessToken).
Моим решением было создание адаптера, который я мог бы передать какобъект EntityManager и AccessToken, а затем передать его в библиотеку OAuth2, чтобы он мог делать то, что ему нужно.
Интересно, есть ли лучший подход к этому ....