![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
fearuth |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 9.9.2008 Репутация: нет Всего: 1 |
Привет всем! Столкнулся с задачей в которой необходим условием является использование Zend Framework. Погуглил, поковырял данный MVC. Сейчас появлися вопрос, на который не могу найти чёткого ответа.
Нужно создать механизм авторизации. В большинстве сайтов встречается один и тот же пример с использованием Zend_Auth, но описание не ахти какое. Знающие люди поделитесь опытом =) Очень инетересно =) |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: нет Всего: 28 |
||||
|
||||
fearuth |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 9.9.2008 Репутация: нет Всего: 1 |
Я вроде как писал, что читал документацию =)
Ладно, поставим вопрос по другому. =) Задача у меня следующая. Есть БД, в ней таблица users, в таблице ключевые поля nick, pass (пароль), lock (показывает заблокирован доступ пользователю к приложению или нет). Если я правильно понял сам алгоритм аутентификации будет примерно следующим:
А как проверять авторизован пользователь в других Action или нет? Это сообщение отредактировал(а) fearuth - 12.1.2011, 07:30 |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: нет Всего: 28 |
не путайте аутентификацию и авторизацию!
Если пользователь прошел аутентификацию то выполняем авторизацию с помощью сессий.
Это сообщение отредактировал(а) CruorVult - 12.1.2011, 11:37 |
|||
|
||||
fearuth |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 9.9.2008 Репутация: нет Всего: 1 |
Тогда получается, что
выполняет поиск по БД в соответствующих полях по условию AND, а в
нужно выполнить запись в сессию? Тогда как потом проверять в последующих Action других контроллеров, что авторизация прошла? ЗЫ. Я просто хочу разобраться основательно, а не писать костыли и велосипеды =( |
||||
|
|||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: нет Всего: 28 |
||||
|
||||
fearuth |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 9.9.2008 Репутация: нет Всего: 1 |
Знаю. =) Но в Zend есть Zend_Session, а он в свою очередь как то тесно связан с Zend_Auth...
Если не тяжело можно разъяснить? |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: нет Всего: 28 |
нет не связан, в Zend_Auth только проверяется можно ли определенному пользователю зайти в систему, если можно - то нужно использовать уже другие средства. Если будет разработываться гибкая система с правами достума то я бы рекомендовал попробовать Zend_Acl, если нет - то просто сессии: либо обертку Zend_Session, либо напрямую. |
|||
|
||||
fearuth |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 9.9.2008 Репутация: нет Всего: 1 |
Вот как раз с разграничением прав пользователей будет разрабатываться. Я уже почитал про Zend_Acl. Очень удобно.
Я пока сделал вот такой вариант проверки то, что пользователь прошел авторизацию:
Это нормально? |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: нет Всего: 28 |
это только аутентификация, авторизации у вас нет.
+ авторизация должна проходить в одном месте а не вовсех контроллерах, в остальных проверяется только сессия Это сообщение отредактировал(а) CruorVult - 12.1.2011, 13:37 |
|||
|
||||
fearuth |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 9.9.2008 Репутация: нет Всего: 1 |
Тогда как мне быть? Прошу хоть мало-мальский пример... Ну хоть, что-то от чего можно оттолкнуться.
|
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: нет Всего: 28 |
после этого будет авторизирован пользоватьель и в любом месте вы можете пустить его дальше или нет Это сообщение отредактировал(а) CruorVult - 12.1.2011, 13:49 |
|||
|
||||
fearuth |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 9.9.2008 Репутация: нет Всего: 1 |
Долго и упорно вчитывался в документацию и наткнулся на несколько фактов:
2. По умолчанию, Zend_Auth обеспечивает постоянное хранение идентификатора полученного в результате успешной попытки аутентификации в PHP сессии. При успешной попытке, Zend_Auth::authenticate() сохраняет идентификатор в постоянном хранилище ... которое в свою очередь использует Zend_Session!
является велосипедом, так как это значение уже есть в хранилище/Zend_Session. Получить его можно при помощи Zend_Auth::getIdentity(). В моём же случае, мне нужно только проверять в каждом Action существует ли результат моей аутентификации в сессии или нет. Для этого, как раз и существует метод Zend_Auth::hasIdentity(), который проверяет наличие сессии и результата аутентификации =) Исходя из этого, метод контроллера:
используемый в каждом Action перед выполнением энных действий и является АВТОРИЗАЦИЕЙ (авторизация — предоставление этому лицу возможностей в соответствие с положенными ему правами или проверка наличия прав при попытке выполнить какое-либо действие (с) википедия). Это сообщение отредактировал(а) fearuth - 13.1.2011, 09:06 |
||||||
|
|||||||
CruorVult |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: нет Всего: 28 |
Вы наверное не поняли смысла:
это пример как можно авторизовать пользователя посредством сессий, а каким образом вы будете это делать - по вашому желанию
интересно каким образом, если вы собираетесь использовать только идентификатор успешной авторизации? Это сообщение отредактировал(а) CruorVult - 13.1.2011, 12:07 |
||||||
|
|||||||
fearuth |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 9.9.2008 Репутация: нет Всего: 1 |
Москва не сразу строилась =) Пока прошел трудный и тернистый путь аутентификации и авторизации. Сейчас буду прикручивать Zend_Acl =) А в хранилище Zend_Auth можно дописать дополнительную информацию =) А потом из него извлекать =) |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Libraries | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |