Мой сайт должен быть интегрирован с программным обеспечением сторонних производителей, которое будет размещаться на собственном поддомене, размещенном компанией-разработчиком программного обеспечения. Мне нужно предоставить сторонним разработчикам конечную точку, которую они могут использовать для выполнения вызовов API (на мой сайт WordPress), чтобы позволить пользователям моего сайта получить доступ к поддомену.
Другой сайт должен аутентифицировать пользователей с моего сайта через своего рода API.
Я не уверен, с чего начать, но я чувствую, что это выяснили люди умнее меня. Заранее спасибо!
api
authentication
customization
single-sign-on
emersonthis
источник
источник
Ответы:
Проблемы межсайтового скриптинга
Вы не можете передавать файлы cookie WP auth между доменами. Вы также не хотите хранить незашифрованные пароли для программного входа в другую установку WP. Таким образом, вам нужно будет, чтобы пользователи входили в WordPress, а затем получали доступ к своему состоянию входа через конечную точку API со стороннего сайта. Это позволяет WordPress обрабатывать все аутентификации. Это довольно безопасно, так как пользователь должен будет физически войти в систему на стороне WP, чтобы конечная точка API передавала данные сторонним лицам.
Создать конечную точку API
Проверьте эту статью, которую я только что написал здесь: http://coderrr.com/create-an-api-endpoint-in-wordpress/
Также вы можете увидеть демонстрацию кода здесь: https://gist.github.com/2982319
Вам придется выяснить логику для собственных нужд приложения, но это позволит вам создать конечную точку, где вы сможете обслуживать все, что захотите, со стороны WordPress.
Поскольку вы используете WordPress в качестве сайта аутентификации, вы можете использовать проверку как is_user_logged_in (). Если они вошли в систему, верните объект пользователя третьей стороне с любой необходимой ему информацией.
Вход в систему от третьих лиц
Сторонние разработчики могут ссылаться на вашу страницу входа для беспроблемного использования запроса redirect_to var. После входа он передает их на сторонний сайт.
Удаленные логины
Если вам необходимо войти в WordPress со стороннего сайта, вы можете использовать некоторые простые функции WP, перечисленные на этом сайте: http://kuttler.eu/code/log-in-a-wordpress-user-programmatics/
Вам определенно нужно будет использовать общий секрет и создавать временные хеши для этого секрета, чтобы обеспечить безопасность. По сути, вот как это будет выглядеть:
Третья сторона отправляет запрос с отметкой времени и токеном, сгенерированным общим секретом:
Установка WordPress получает запрос:
источник
counter
вместоtime()
и передать его с запросом. Обе стороны сохраняют последний переданный счетчик, и когда api получает запрос с новым счетчиком, он проверяет, что новый счетчик больше, чем последний. Таким образом, задержка не может причинить вреда.