Авторизация через Google на сайте для избранных доменов (почт)?

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

Возможно ли в настройках приложения Google OAuth сделать так, чтобы на сайт можно было войти только с определенных доменов (почт)?

Возможно есть функционал на стороне Google OAuth чтобы запретить вход и регистрацию на сайте для всех (White List для авторизации)
Сайт работает на WordPress

UPD:
Пример:
Сайт на WordPress с авторизацией через Google, надо сделать возможность пропускать только те домены (почты) которые добавлены в список разрешенных для авторизации например - mail@example.com (бизнес аккаунты) а другие отклонять - mail@gmail.com

Дополнительные вопросы

Можно подробнее , более развернуто, кому можно нельзя ?

  • Да, вот пример:
    Сайт на WordPress с авторизацией через Google, надо сделать возможность пропускать только те домены (почты) которые добавлены в список разрешенных для авторизации например - mail@example.com (бизнес аккаунты) а другие отклонять - mail@gmail.com
  • Ответы:

    Да, в настройках Google OAuth можно ограничить доступ к вашему сайту, разрешив вход только с определенных доменов. Это обычно делается путем настройки списка разрешенных доменов в консоли Google API для вашего проекта. Также, вы можете реализовать дополнительную логику на стороне вашего сервера, чтобы проверять домен электронной почты пользователя после аутентификации и перед предоставлением доступа к сайту.

    Для сайтов на WordPress существуют плагины, которые могут помочь вам управлять процессом авторизации через Google OAuth и настроить ограничения на основе доменов электронной почты. Вы можете настроить такой плагин, чтобы он принимал только пользователей с электронной почтой из определенных доменов.

    Кроме того, если вы используете Google Workspace, вы можете настроить политики доступа к областям действия OAuth, которые позволяют контролировать, какие приложения могут получать доступ к данным Google Workspace в вашем домене

    • Большое спасибо за ответ!
      Хотелось бы всетаки сделать эту проверку по доменах почты на стороне самого Google OAuth, так как на сайте используєтся кастомный вход.

      Также буду очень благодарен если подскажете в каких вкладках в панели управления приложением Google я могу найти эти настройки.
      (где именно я могу установить этот диапазон доменов "@example.com")?

      Спасибо.

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

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

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

    В настройках Google OAuth нельзя надёжно сделать whitelist доменов для входа на ваш WordPress-сайт так, чтобы Google сам отфильтровывал всех пользователей по домену почты. Google OAuth отвечает за подтверждение личности, а бизнес-правило «кого пускать» обычно реализуется на стороне вашего сайта после получения email.

    Правильная схема такая:

    1. Пользователь входит через Google.
    2. WordPress получает подтверждённый email.
    3. Ваш код или плагин проверяет домен/email по whitelist.
    4. Если email разрешён — пользователь входит.
    5. Если нет — регистрация/вход отклоняется.

    Если используете готовый плагин social login, ищите в нём hooks после получения профиля Google. Почти все нормальные плагины имеют фильтр или действие перед созданием пользователя.

    Пример общей логики проверки email:

    function is_allowed_google_email($email) {
        $allowed_domains = ['example.com', 'company.ru'];
        $allowed_emails  = ['manager@gmail.com'];
     
        $email = strtolower(trim($email));
        $domain = substr(strrchr($email, '@'), 1);
     
        return in_array($email, $allowed_emails, true)
            || in_array($domain, $allowed_domains, true);
    }

    function is_allowed_google_email($email) { $allowed_domains = ['example.com', 'company.ru']; $allowed_emails = ['manager@gmail.com']; $email = strtolower(trim($email)); $domain = substr(strrchr($email, '@'), 1); return in_array($email, $allowed_emails, true) || in_array($domain, $allowed_domains, true); }

    Где именно вызвать эту функцию — зависит от плагина авторизации. Если пишете свою интеграцию, проверку делайте после получения userinfo от Google и до создания/логина пользователя.

    Для Google Workspace есть настройка ограничения OAuth app внутри организации, но она работает для пользователей вашей организации и управления приложениями, а не как универсальный whitelist для любого сайта. Если вам нужно пускать только корпоративные домены, всё равно лучше проверять email на стороне WordPress.

    Важно: проверяйте именно подтверждённый email от Google, а не поле, которое пользователь сам ввёл в форму. В userinfo у Google есть признак email_verified. Если он false, такого пользователя лучше не пускать.

    Итог: whitelist делайте в WordPress/плагине авторизации. Google OAuth даёт личность, а решение «разрешить или запретить вход» принимает ваш сайт.

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

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

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

    комментарий

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

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