WordPress как на ладони
wordpress jino

Как сделать единый вход (авторизацию) для поддоменов?

Всем привет!

Мне нужно сделать так, чтобы при авторизации (входе) на главный домен, например, site.ru авторизация также работала и для всех поддоменов: aaa.site.ru, sss.site.ru и т.д. Т.е. нужна кроссдоменная авторизация в пределах любых поддоментов.

Не уверен, что это вообще можно сделать, но наверное как-то должна делаться такая кроссдоменная авторизация. Мне кажется это похоже на систему мультисайтов в WordPress, где главный админ авторизован на всех сайтах.

Я что-то не могу найти решение этого впороса в сети. Помогите пожалуйста и посоветуйте как лучше, правильнее и проще это сделать.

Спасибо!

0
Гость 1.5 года назад
  • 0
    Kama4464

    По умолчанию WordPress прописывает куки авторизации только для текущего домена. Если это под-домен, то только для него.

    Изменить это очень просто. Для этого нужно указать главный домен для которого будут выставляться куки авторизации. Указывать нужно в таком виде: '.site.ru'. Это означает, что куки будут работать для всех доменов site.ru и всех под-доменов foo.site.ru или bar.site.ru. Указывается он в файле wp-config.php в константе COOKIE_DOMAIN. Вот так:

    preg_match('~[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6}$~', getenv('HTTP_HOST'), $mm ); // определим главный домен, не под-домен
    define('COOKIE_DOMAIN', '.'.$mm[0] ); // установим главный домен для всех кук

    COOKIE_DOMAIN используется в функции wp_set_auth_cookie()

    По умолчанию эта константа определяется как false, что значит - для текущего домена. Если используется MU сборка, то COOKIE_DOMAIN определяется так: define('COOKIE_DOMAIN', '.' . $current_site->domain);

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.