Где поставить логику OAuth? - PullRequest
3 голосов
/ 04 июня 2011

Я использую Zend Framework в проекте и создаю контроллер только для аутентификации. В этом проекте мы примем, что пользователь регистрируется через учетную запись других сайтов, таких как Facebook, Twitter, MySpace и т. Д. Для этого мы будем использовать OAuth. Но у меня есть сомнения, где я должен поместить логику для каждой аутентификации сайта OAuth? Например, только Facebook занимал 50 строк кода в моем контроллере, и таким образом мои контроллеры не будут тонкими ...

Интересно, куда мне это положить? Создайте адаптер Zend_Auth для каждого сайта, создайте сервис только для этого, как лучше?

И извините за плохой английский. :)

Ответы [ 2 ]

1 голос
/ 04 июня 2011

JF Остин имеет довольно общую реализацию адаптера аутентификации OAuth , в которой используется Zend_Oauth_Consumer . Создание определенных подклассов этого для Twitter, Facebook и т. Д. Кажется простым. У него даже, кажется, уже есть адаптер Twitter . Использование адаптера описано в его блоге об этом.

В качестве альтернативы, обратите внимание на этот на Ллойд Уоткин .

Upshot: вся логика OAuth скрыта внутри этих адаптеров. Затем ваши контроллеры могут создать экземпляр этого адаптера аутентификации, передать его в Zend_Auth::authenticate($adapter), а затем принять меры на основе возвращенного результата, сосредоточив контроллер на высокоуровневой проводке приложения.

1 голос
/ 04 июня 2011

Ваша логика OAuth должна жить внутри моделей, как и вся логика вашего бизнеса.Ваш контроллер должен оставить управление потоком программы и установить переменные представления для использования в вашем скрипте представления.

С уважением, Гарри

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