2009-09-09 3 views
2

У меня есть приложение в rails (используется аутентификация через AuthLogic).Rails PHP Login Integration

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

Короче говоря, Форма входа в систему PHP -> Отправить учетные данные в приложение Rails -> вернуть результаты приложения rails обратно в приложение php.

Как я могу это сделать ??

Большое спасибо.

ответ

1

Есть много способов приблизиться к этому. Но есть некоторые правила, чтобы сделать эту настройку работоспособной. Во-первых, вам нужно убедиться, что оба Rails и PHP-приложения находятся в одном домене и могут читать файлы cookie друг друга. Вам нужно будет хранить и сеансить в файле cookie или предоставлять доступ к вашему приложению PHP и Rails в том же хранилище сеансов. В лучшем случае это сложно.

Моим решением было бы использовать существующие методы аутентификации. Либо реализовать OpenID, либо oauth-провайдера в вашем приложении PHP. Они доступны в Интернете. На стороне Rails вы должны реализовать пользователя OpenID или oauth. Не создавая собственное решение и используя проверенную концепцию, такую ​​как OpenID или oauth, вы добавляете гораздо больше безопасности в свое приложение, чем с самодельным решением.

Кстати, нет ничего плохого в том, чтобы добавить собственные начинки в схемы OpenID или oauth. То есть Я создал приложение один раз с центральным сервером аутентификации с использованием OpenID. Но у нас были автоматические одобрения клиентских приложений, и мы смогли отправить основную информацию о пользователе клиентам (например, ID, адрес электронной почты, имя, адреса и т. Д.).

Опять же, я советую идти с OpenID или oauth. Я думаю, что последнее проще реализовать (и Twitter использует его).

+0

Причина выбора OpenID или oauth также в том, что существуют библиотеки, доступные как для Ruby, так и для PHP, и вам не придется беспокоиться о PHP <-> Ruby разговаривает друг с другом непосредственно через магазины сеансов или что-то такое безумное. – Ariejan