IPS Connect это система кросс-доменной авторизации и единой точки входа, позволяющая использовать учётные данные авторизации сразу несколькими веб-приложениями. Кроме того, основное управлением пользователями будет общим для этих двух отдельных веб-приложений, позволяя управлять пользователями в одном приложении, а изменения при этом будут применены к остальным веб-приложениям.
В то время, как Invision Community изначально поддерживает IPS Connect с минимальной настройкой со стороны администратора, разработчики также могут добавлять интеграцию IPS Connect в свои собственные веб-приложения.
В этой инструкции описывается как использовать IPS Connect в IPS Community Suite, а также как создать ведущее (master) ведомое (slave) приложения IPS Connect.
Архитектура IPS Connect
IPS Connect включает в себя одно ведущее приложение и одно или несколько ведомых приложений. Когда любые запросы, являющиеся частью IPS Connect, сделаны ведомым приложением, они всегда отправляются ведущему приложению. Мастер приложение отвечает за уведомление всех ведомых приложений (или можно сказать установок) о любых изменениях, о которых они должны знать (это означает, что ведущая установка должна обслуживать базу данных всех подключённых ведомых установок).
Если у вас есть сайт и установлен новый сайт, текущий сайт должен быть ведущим, а новый сайт - ведомым.
IPS Connect для Invision Community 4 не имеет обратной совместимости IPS Connect для IP.Board 3. В то время, как разработчики стремились сделать процесс обновления максимально безболезненным, необходимо было расширить и улучшить IPS Connect, это означает, что вызовы 3.x API больше не могут быть обработаны.
События IPS Connect
Запросы, которые распространяет IPS Connect на другие установки, включают:
-
Авториация (Logging in)
Запросы авторизации обрабатываются ведущим приложением и учётные данные используются совместно со всеми сайтами в сети. -
Единая точка входа (Single sign on)
Когда пользователь входит в одно приложение, он будет авторизован во всех других приложениях, даже если эти другие приложения расположены на других доменных именах. -
Выход (Logging out)
При выходе из одного приложения, вы выходите из всех других приложений. -
Регистрация (Registering)
При создании нового аккаунта пользователя, он добавляется во все сайты в сети. -
Изменение имени пользователя, email адреса и пароля (Changing usernames, email addresses and passwords)
Эти запросы распространяются на все сайты в сети. (Примечание: вы можете отключить возможность менять имя пользователя от распространения между всеми сайтами, смотри детали ниже). -
Блокировка пользователей (Banning users)
Когда вы блокируете пользователя на одном сайте, он блокируется сразу на всех сайтах. -
Подтверждение аккаунта (Account validation)
Если пользователь зарегистрирован и вы требуете подтверждение аккаунта, этот пользователь должен будет подтвердить свой аккаунт, прежде чем сможет получить доступ к любому сайту в сети как полноценный пользователь. -
Удаление аккаунта (Account deletion)
Если пользователь удаляется, он будет удалён во всех сайтах сети. -
Слияние аккаунтов (Account merges)
Если аккаунты двух пользователей объединены, данное объединение будет скопировано на все сайты сети.
Вы можете отключить распространение возможности изменения имён пользователей на все сайты в сети. Это может быть полезно, если вы хотите, чтобы данные для авторизации передавались всем сайтам в сети, но хотите, чтобы учётные данные пользователей были отдельными. Для этого в Community Suite вы должны создать файл constants.php в корневой директории (где расположен файл index.php), или изменить существующий. Вставьте следующий код в файл constants.php:
<?php define( 'CONNECT_NOSYNC_NAMES', TRUE );