Как на нескольких сайтах WP сделать единую базу юзеров?
Доброго времени суток, есть несколько сайтов, находящихся на одном хостинге, можно ли с помощью плагинов сделать единую базу юзеров?
Т.е. юзер регается на одном сайте, но может спокойно авторизироваться на всех остальных.
Дополнительно:
Делать мультисайт. Возможно понадобятся плагины для управления юзерами на нём.
Ответы:
Самый простой варинат,это переписывать сис-му авторизации или же писать свой плагин,чтобы при вводе логина/пароля на авторизацию,проверяло данные пользователей с "главной базы" и если там есть такой пользователь проводить авторизацию.
Либо же путем указывания констант в wp-config.php
define( 'CUSTOM_USER_TABLE', $shared_table_prefix . 'my_users' ); define( 'CUSTOM_USER_META_TABLE', $shared_table_prefix . 'my_usermeta' ); |
define( 'CUSTOM_USER_TABLE', $shared_table_prefix . 'my_users' ); define( 'CUSTOM_USER_META_TABLE', $shared_table_prefix . 'my_usermeta' );
https://wordpress.org/documentation/article/editin...
Данная процедура нужна для обоих сайтов + создать сами таблицы.
Дополняю статьей:
https://wpmag.ru/2014/wordpress-multisite/
И плагин:
https://en-gb.wordpress.org/plugins/external-login/
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Единую базу пользователей для нескольких WordPress-сайтов можно сделать, но самый безопасный штатный путь — WordPress Multisite. В multisite пользователи общие для всей сети, а права назначаются отдельно на каждый сайт. Это лучше, чем пытаться связать несколько независимых установок костылями.
Если сайты уже независимые, есть два варианта:
CUSTOM_USER_TABLEиCUSTOM_USER_META_TABLE.Второй вариант выглядит так:
define('CUSTOM_USER_TABLE', 'wp_users'); define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
Но это не волшебная синхронизация. У сайтов должны совпадать соли/ключи авторизации, домены cookie, роли, плагины авторизации и логика usermeta. Иначе пользователь вроде есть в общей таблице, но сессии, роли или права работают странно.
Если сайты находятся на разных доменах, единый вход становится ещё сложнее: нужны SSO, OAuth/OpenID Connect или централизованный identity provider. Просто общая таблица пользователей не даст автоматическую авторизацию на всех доменах.
Для нового проекта выбирайте multisite. Для существующих боевых сайтов сначала сделайте тестовую копию и проверьте роли, авторизацию, восстановление пароля, регистрацию и плагины личного кабинета. Ошибка в общей базе пользователей может заблокировать доступ сразу ко всем сайтам.