Центр документации
|
Самоучитель по интеграции дизайна и настройке Amiro.CMS на примере демонстрационной версии пакета Визитка »
Набор классов User Source Application (AMI_UserSourceApp.php) совместно с точкой входа для сервисов (ami_service.php) позволяют как авторизовывать пользователей сторонних сервисов (например Twitter, Facebook и т.д.) на сайте под управлением Amiro.CMS, так и разрабатывать сервисы для авторизации пользователей в сторонних приложениях через сайт. В стандартную поставку системы включены драйверы для авторизации пользователя на сайте с использованием учетных записей в социальных сервисах: Twitter, Facebook, VKontakte. Инструкция по настройке встроенных драйверов авторизации. Программный интерфейсЧтобы создать и подключить новый драйвер для авторизации
Модификация для выполнения кастомных запросов Существующая точка входа /ami_service.php позволяет выполнять любые нестандартные методы вашего драйвера. Для этого требуется сформировать POST или GET запрос, содержащий следующие параметры: service = source_app - обязательный параметр driver = ami_test - название драйвера driver_action = verify – вызываемое действие При этом, в теле класса необходимо объявить публичный метод с именем dispatchДействие, в нашем случае dispatchVerify. внутри своего метода вы можете получать параметры из запроса с использованием объекта AMI_Request (http://manual.amiro.ru/docs/api6/Environment/AMI_Request.html).
Объединение систем авторизации с внешним приложением.С версии 5.12.4 Amiro.CMS появилась возможность использовать схему единой авторизации CMS и различных внешних приложений. Данная схема подразумевает единую точку регистрации, единый набор пользователей и паролей, синхронизация данных пользователей при операции обновления. В данном разделе будут продемонстрированы основные возможности единой авторизации на примере интеграции с форумом vBulletin 4.xx Объединение системы авторизации Amiro.CMS и сторонней системы на примере форума vBulletin 4.xxУстановка и настройка форумаПредполагаем, что пользователь уже является владельцем дистрибутива и лицензионного ключа vBulletin, и в состоянии самостоятельно произвести инсталляцию форумного скрипта.
Подключение драйвера внешней авторизацииДля использования возможности объединения систем авторизации Amiro.CMS и форума vBulletin на стороне CMS необходимо подключить и инициализировать соответствующий драйвер внешней авторизации. Для этого добавим в файл _local/front_functions.php следующий код:
Здесь: forum_url – URL по которому размещается форум db_host, db_username, db_password, db_database – данные для доступа к БД форума (указывались при установке скрипта vBulletin). db_prefix указывает на префикс таблиц vBulletin, если вы используете одну базу данных для форума и CMS. Если вы не указывали префикс таблиц при установке форума, эту опцию можно не передавать. Дополнительно есть возможность указать параметры cookie_ttl – время жизни cookies форума в секундах (по умолчанию 3600) и cookie_path – путь размещения cookies (полный URL). В результате, на события регистрации, изменения профиля, авторизации и выхода будут добавлены соответствующие обработчики, обращающиеся к скриптам vBulletin и выполняющие соответствующие действия на стороне форума. Таким образом, на этом этапе, регистрация на стороне CMS добавит соответствующего пользователя на форуме, авторизация на стороне CMS одновременно авторизует пользователя на стороне форума, завершение сессии пользователя на стороне CMS завершит сессию на стороне vBulletin, и т.д. Добавление хуков (hooks) форумаДля того чтобы настроить обратный процесс авторизации (авторизация на форуме влияет на авторизацию CMS) в панели управления форума необходимо добавить обработчики событий (хуки) для событий авторизации, выхода и обновления регистрационных данных. Добавление хука производится через раздел Plugins & Products, опцию Add New Plugin. Авторизация
Здесь конструкция
предназначена для изоляции глобальных переменных форума и CMS, для исключения возможного влияния их друг на друга. Глобальные переменные vBulletin сохраняются с именем vB, восстанавливаются глобальные переменные CMS, а по окончанию работы с API Amiro.CMS вновь восстанавливаются глобальные переменные форума.
Это необходимо для предотвращения повторной отработки события на стороне CMS. Прекращение авторизацииХук на событие logout_process.
Обновление данныхХук на событие profile_updatepassword_complete.
Настройка для работы с форумом на поддоменеДля того чтобы CMS имела возможность использовать общую авторизацию с форумом, который расположен на поддомене, необходимо, чтобы скрипты поддомена имели доступ к файлам основного домена. Для интеграции необходимо осуществить следующие настройки. Настройка форумаПо умолчанию, vBulletin выставляет cookie для текущего домена. Необходимо в разделе Cookies and HTTP Options в опциях Cookie Domain – Suggested Settings выбрать имя основного домена. Настройка CMSВ код инициализации драйвера в файле _local/front_functions.php необходимо добавить опцию cookie_path, значение которой соответствует полному URL основного сайта.
Создание собственного драйвера внешней авторизацииДрайвер авторизации есть наследник класса AMI_ExternalAuthDriver.
Для корректной работы драйвера необходимо задать массив ожидаемых настроек:
И реализовать методы getInstance() и init():
Далее создаются публичные методы класса отвечающие за обработку тех или иных событий на стороне СMS. Например:
Эти обработчики подключаются в методе init():
Аналогичным образом создаются обработчики на события создания пользователя и обновления данных профиля. Список доступных событий: on_before_user_create on_after_user_create on_before_user_update on_after_user_update on_before_user_login on_after_user_login on_before_user_logout Полученный драйвер желательно прописать в ресурсах как ‘extauth/driver/my’. |