Аутентификация по доменам: как? - PullRequest
1 голос
/ 27 сентября 2011

Перед тем, как записать этот вопрос как обман, я хотел бы добавить, что есть несколько вопросов с одинаковой темой / заголовком на SO, но этот немного отличается, потому что большинство / все они включают SSL имой вопрос не

www.mysite.com - это мой веб-сайт, созданный с использованием WordPress CMS.Предполагается, что я собираю функцию управления пользователями (я думаю, WordPress предоставляет это по умолчанию / потребуется несколько плагинов) на моем веб-сайте.Когда пользователь входит на www.mysite.com , я должен аутентифицировать этого пользователя на www.thirdpartysite.com .Это немного похоже на OpenID в некотором смысле, но только то, что www.thirdpartysite.com не предлагает / не поддерживает никакую другую схему аутентификации, кроме веб-аутентификации.

Итак, я застрял здесь с этой проблемой?Какой будет лучший способ продолжить здесь?Должен ли я сказать www.thirdpartysite.com , что им потребуется предоставить API для аутентификации?Или я могу использовать AJAX здесь и сделать так, чтобы часть кода выполняла аутентификацию в фоновом режиме на www.thirdpartysite.com - я не уверен, возможно ли это.

Ответы [ 2 ]

2 голосов
/ 27 сентября 2011

Я бы не использовал AJAX здесь, я бы использовал cURL .

Проведите тест на www.thirdpartysite.com с действительными и недействительными учетными данными, чтобы найти способ программно определить,вход был успешным или нет.Возможно, вы обнаружите, что коды состояния различны или страница перенаправлена ​​при успешном входе в систему.

Как только вы сможете определить успешные и неудачные входы в систему, создайте форму входа на сайте www.mysite.com.Когда пользователь пытается войти, в php-коде на www.mysite.com, обрабатывающем сообщение, отправьте соответствующее сообщение на www.thirdpartysite.com (например, используя cURL ).Если вход на сайт www.thirdpartysite.com завершился успешно, обработайте пользователя как аутентифицированного, создайте сеанс, файлы cookie и т. Д. Если вход на сайт www.thirdpartysite.com не пройден, отобразите ошибку для пользователя.

При таком подходе вступают в силу соображения безопасности, так как www.mysite.com будет иметь доступ к имени пользователя и паролю www.thirdpartysite.com для пользователей, которые заходят на сайт www.mysite.com.Это то, что они могут или не могут доверять вам.

1 голос
/ 27 сентября 2011

Лучшее, что вы можете сделать, это создать ajax-запрос, который передает SESSID для аутентификации на всех ваших сайтах.Это возможно, если вы используете, например, JSONP

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