Как на нескольких сайтах WP сделать единую базу юзеров?

Ссылка скопирована
1 ответ

Доброго времени суток, есть несколько сайтов, находящихся на одном хостинге, можно ли с помощью плагинов сделать единую базу юзеров?
Т.е. юзер регается на одном сайте, но может спокойно авторизироваться на всех остальных.

Дополнительно:

Делать мультисайт. Возможно понадобятся плагины для управления юзерами на нём.

Ответы:

Самый простой варинат,это переписывать сис-му авторизации или же писать свой плагин,чтобы при вводе логина/пароля на авторизацию,проверяло данные пользователей с "главной базы" и если там есть такой пользователь проводить авторизацию.

Либо же путем указывания констант в 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/

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Сергей Миронов Ответ

Единую базу пользователей для нескольких WordPress-сайтов можно сделать, но самый безопасный штатный путь — WordPress Multisite. В multisite пользователи общие для всей сети, а права назначаются отдельно на каждый сайт. Это лучше, чем пытаться связать несколько независимых установок костылями.

Если сайты уже независимые, есть два варианта:

  • перенести их в multisite;
  • использовать общий набор таблиц пользователей через константы CUSTOM_USER_TABLE и CUSTOM_USER_META_TABLE.

Второй вариант выглядит так:

define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

define('CUSTOM_USER_TABLE', 'wp_users'); define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

Но это не волшебная синхронизация. У сайтов должны совпадать соли/ключи авторизации, домены cookie, роли, плагины авторизации и логика usermeta. Иначе пользователь вроде есть в общей таблице, но сессии, роли или права работают странно.

Если сайты находятся на разных доменах, единый вход становится ещё сложнее: нужны SSO, OAuth/OpenID Connect или централизованный identity provider. Просто общая таблица пользователей не даст автоматическую авторизацию на всех доменах.

Для нового проекта выбирайте multisite. Для существующих боевых сайтов сначала сделайте тестовую копию и проверьте роли, авторизацию, восстановление пароля, регистрацию и плагины личного кабинета. Ошибка в общей базе пользователей может заблокировать доступ сразу ко всем сайтам.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно