Я пытаюсь настроить WordPress в качестве клиента OAuth2. Все наши пользователи хранятся в нашей собственной CMS, которая является поставщиком OAuth. У нас очень мало (нет) пользователей в нашей базе данных WordPress, в основном только администраторы. В идеале я не хочу хранить пользовательские данные в базе данных WordPress, потому что мне нужно каким-то образом поддерживать состояние для нескольких сайтов WordPress, в то время как у нас есть один источник правды в нашей собственной CMS.
Мой первоначальный замысел - создать плагин, который переопределяет существующие пользовательские функции WordPress и сохраняет маркер доступа OAuth и пользовательский uuid в файле cookie или сеансе. Но мне нужно, чтобы этот пользователь был доступен в других плагинах, поэтому в идеале он должен переопределять стандартные методы WordPress.
Это приемлемый подход? Или я пытаюсь работать с WordPress таким образом, чтобы он не должен был работать?
Я могу найти тонны плагинов для настройки WordPress в качестве поставщика OAuth2, но очень мало в качестве клиента. При этом я обнаружил, что некоторые настраивают WordPress в качестве клиента, но многие из них относятся только к Google Apps, Facebook, Twitter и т. Д. Кроме того, эти приложения полагаются на локальное хранение пользовательских данных в пользовательской таблице WordPress. Я бы предпочел не делать этого.
Спасибо за любую помощь!
Ответы:
Если вы можете придерживаться переопределения только функций, которые находятся в wp-includes / pluggable.php, тогда вы сможете избежать любых конфликтов плагинов ... если вы не используете плагины, которые переопределяют те же плагины.
Просто убедитесь, что ваши функции объявлены до загрузки подключаемых модулей. Плагины загружаются до файла pluggables ... поэтому, если вы определите переопределения своих функций в плагине, вы можете быть уверены, что они загружены. В противном случае, просто используйте более раннее действие для этого.
Существует довольно много функций аутентификации, файлов cookie и пользовательских функций.
источник