OAuth 2 и сохранение аутентифицированного пользователя


У меня довольно своеобразный сценарий.

У меня есть один сайт WordPress (Сайт A), на котором зарегистрировано большое количество пользователей, и я использую плагин s2member, чтобы подписаться на этих участников, чтобы разрешить доступ к частям веб-сайта.

Я хочу выпустить еще один продукт, на который пользователи должны подписываться отдельно, но ограничение плагина s2member означает, что у меня не может быть двух подписок для одного пользователя одновременно.

Я пришел к вывод, что мне нужно создать еще один сайт WordPress (сайт B) (с собственным экземпляром s2member) и попросить моих пользователей зарегистрироваться там для дополнительной подписки для доступа к продукту.

Моя цель - максимально упростить процесс возврата между двумя сайтами Wordpress и попытаться устранить необходимость перерегистрации на сайте B. Я хочу, чтобы люди регистрировались на сайте A, а затем могли входить на сайт B, используя свои учетные данные с сайта A.

Я посмотрел на WPMUDev Плагин синхронизации пользователей, но проблема в том, что он будет извлекать все данные s2member для пользователя, а также все остальное, чего я не хочу.

Поэтому я начал рассматривать возможность использования сайта A в качестве поставщика OAuth и аутентификации с его помощью на сайте B. У меня это работает, и я могу создать сеанс входа в систему и получить все данные пользователя (за вычетом конфиденциальной информации, конечно) на сайте B.

Это выглядит действительно многообещающе до того момента, когда мне нужно будет дать это недавно прошедший аутентификацию пользователь на сайте имеет профиль s2member, чтобы он мог подписаться на мой новый продукт. Я не могу этого сделать, если они официально не зарегистрированы как Пользователь на сайте B, и я не могу зарегистрировать пользователя с помощью их пароля с сайта A, потому что 1) Я не хочу отправлять эту информацию через HTTP (или HTTPS) и 2) если они обновят свой пароль на сайте A, он не будет обновляться на сайте B.

Это подводит меня к моему вопросу на миллион долларов: как бы вы зарегистрировали/сохранили пользователя без пароля на мой сайт B, как только они пройдут аутентификацию на сайте A?

Если вы видите какие-либо другие возможности в ситуации, которую я объяснил, я открыт для предложений.

Спасибо.

Author: Ash Thornton, 2016-02-19

1 answers

Похоже, ты настаиваешь на том, чтобы усложнять себе жизнь. Реализация любого типа API подвержена ошибкам лучших разработчиков, и синхронизация в реальном времени может завершиться сбоем из-за сетевых ошибок, ошибок и т. Д., И я бы очень колебался, прежде чем выбирать такой вариант.

Использование сети, вероятно, является лучшим вариантом по нескольким причинам, но если вы чувствуете, что это не соответствует вашим потребностям, ваша другая лучшая альтернатива - просто подключиться напрямую к базе данных сайта A, чтобы получить соответствующую информация. В некотором смысле это вариант идеи API, но поскольку у него есть только один авторитетный источник данных, и вы будете использовать проверенные в бою протоколы для получения информации, шансы на успешную реализацию намного выше.

 0
Author: Mark Kaplun, 2016-02-19 15:23:39