Одна база пользователей на двух сайтах, возможно?
Здравствуйте. Возможно уже не такой банальный вопрос. Есть давно работающий сайт, имеющий свою базу пользователей. Сейчас разрабатывается еще один сайт, который будет как дополнение к первому, но не являющийся его частью. Единственное пересечение — база пользователей. Она должна быть одна на оба сайта. В идеале использовать базу пользователей от первого сайта, но я честно говоря не представляю как это возможно.
В голове крутится костыль, написать сниппет, который будет вызываться при авторизации. В сниппет подключить апи модх первого сайта, и через процессор авторизации пробовать аутентифицировать пользователя по логину\паролю, что я получу от пользователя. И если связка логин\пароль от основного сайта верна, на новом сайте создавать\авторизировать пользователя с такой же почтой что и на старом.
Мне этот костыль казался наиболее человечным по виду, но я столкнулся с тем что не могу внутри modx подключить апи другого modx из папки рядом.
Может быть все проще? И я что-то делаю совсем не так? Просто так взять и скопировать всех пользователей из одного сайта во второй не подходит. Пользователи должны быть на первом сайте, там и регистрироваться. Регистрироваться на втором сайте должно быть возможно, но все равно пользователь новый из второго сайта должен создаваться в первом.
В голове крутится костыль, написать сниппет, который будет вызываться при авторизации. В сниппет подключить апи модх первого сайта, и через процессор авторизации пробовать аутентифицировать пользователя по логину\паролю, что я получу от пользователя. И если связка логин\пароль от основного сайта верна, на новом сайте создавать\авторизировать пользователя с такой же почтой что и на старом.
Мне этот костыль казался наиболее человечным по виду, но я столкнулся с тем что не могу внутри modx подключить апи другого modx из папки рядом.
Может быть все проще? И я что-то делаю совсем не так? Просто так взять и скопировать всех пользователей из одного сайта во второй не подходит. Пользователи должны быть на первом сайте, там и регистрироваться. Регистрироваться на втором сайте должно быть возможно, но все равно пользователь новый из второго сайта должен создаваться в первом.
Комментарии: 7
Компонент Office умеет делать удалённую авторизацию. Как на modx.pro — основная база пользователей на одном сайте, а на остальных сайтах удалённая авторизация.
Смотрел в его сторону, но нужно обойтись без редиректов. Пошел думать костыли…
Для разработчиков.
1. Лучше следовать современным тенденциям в мире разработки. Сейчас для этой задачи используют OAuth2. Т.е. на сайт 1 ставится сервер OAuth2. На сайт 2 ставиться HybridAuth. Настраивают и то и другое и работают как взрослые.
2. На обоих сайтах база пользователей будет одинаковая. На втором сайте она будет наполняться по мере аутентификации пользователей. Регистрация должна быть только на первом сайте.
3. В описании Office опять же путаница с терминологией. Залогинивание пользователя — это аутентификация. Она будет происходить на сайте 1. Нужна только один раз. А авторизация происходит через $modx->hasPermission(). Она уже проводится на сайте 2 и при каждом запросе пользователя.
Для простых пользователей, использующих MODX как конструктор сайтов, Office отлично подойдёт.
1. Лучше следовать современным тенденциям в мире разработки. Сейчас для этой задачи используют OAuth2. Т.е. на сайт 1 ставится сервер OAuth2. На сайт 2 ставиться HybridAuth. Настраивают и то и другое и работают как взрослые.
2. На обоих сайтах база пользователей будет одинаковая. На втором сайте она будет наполняться по мере аутентификации пользователей. Регистрация должна быть только на первом сайте.
3. В описании Office опять же путаница с терминологией. Залогинивание пользователя — это аутентификация. Она будет происходить на сайте 1. Нужна только один раз. А авторизация происходит через $modx->hasPermission(). Она уже проводится на сайте 2 и при каждом запросе пользователя.
Для простых пользователей, использующих MODX как конструктор сайтов, Office отлично подойдёт.
Может кто знает алгоритм генерации пароля на modx? где его посмотреть?
Вот нашел для тебя:
public function generatePassword($length = 10,array $options = array()) {
$options = array_merge(array(
'allowable_characters' => 'abcdefghjkmnpqrstuvxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789',
'srand_seed_multiplier' => 1000000,
),$options);
$ps_len = strlen($options['allowable_characters']);
srand((double) microtime() * $options['srand_seed_multiplier']);
$pass = '';
for ($i = 0; $i < $length; $i++) {
$pass .= $options['allowable_characters'][mt_rand(0, $ps_len -1)];
}
return $pass;
}
не совсем то, это пароль из админки, когда ставим галочку генерировать новый пароль. А вот как получить пароль, который находится в бд. Там алгоритм вроде hash_pbkdf2, но php функция не дает того результата, что находится в бд.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.