Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Ограничение регистрации через VAuth по домен Google Apps

Ограничение регистрации через VAuth по домен Google Apps


     09.01.2014    Общие вопросы по PHP    1586

вопрос
Использую VAuth для авторизации на сайте. Нужно запретить регистрацию из гугла, если домен пользователя не равен нужному.
VAuth использует параметр email при oauth запросе, google дает доступ к адресу почты и названию домена гугл аппс.
Код google_functions.php

Как реализовать ограничение по домену? Что использовать и в какое место впихнуть?
Спасибо.

Ответа пока нет


Комментарии пользователей (2)

Global
13

Global - 9 января 2014 21:44 - Юзер

Вот здесь все функции VAuth
GitHub

Global
13

Global - 10 января 2014 20:49 - Юзер

Попробовал реализовать так:
google_functions.php

//Здесь остальные функции
function get_oauth_info($go) {
            
            global $vauth_text;
            global $db;
            global $site_url;
            
            $go['access_token'] = $_SESSION['google_access_token'];
            
            $go_info        =    json_decode($this->vauth_get_contents('https://www.googleapis.com/oauth2/v1/userinfo?access_token='.$go['access_token']), FALSE); //Получаем информцию о пользователе
            
            $go['uid']        =    $this->conv_it($go_info->id);
            if (!is_numeric($go['uid'])) { header('Location: '.$site_url); die(); }
            $go['gender']        =    $this->conv_it($go_info->gender);
            $go['email']        =    $this->conv_it($go_info->email);
            $go['avatar']        =    $this->conv_it($go_info->picture);
            $do['domain']        =    $this->conv_it($go_info->domain); //Попытка забрать еще и домен
            
            if ( empty($go['avatar']) ) $go['avatar'] = $site_url . '/engine/modules/vauth/styles/photo.jpg';
            
            $go['firstname']    =    $this->conv_it($go_info->given_name);
            $go['lastname']        =    $this->conv_it($go_info->family_name);
            $go['fullname']        =    $this->conv_it($go_info->name);
            $go['nick']            =    $this->conv_it($go_info->name);
            
            
            switch(    $go['gender']    ) {
            
                case 'male'    : $go['sex'] = $vauth_text[4];    break;
                case 'female'    : $go['sex'] = $vauth_text[5];    break;
            
            }
            
            return $go;
        }
//Там тоже остальной код

vauth_functions.php

        // ** Функция авторизации пользователей
        function vauth_login($oauth,$ac_connect) {
        
            global $db;
            global $vauth_text;
            
            $prefix = $oauth['prefix'];
            $prefix2 = $oauth['prefix2'];
            
            
            $oauth    = $this->get_oauth_info($oauth);
            //попытка ограничения по домену
            if ( ! $oauth['domain'] = ('shagi29.ru' or 'shagi29.tk' or 'shagi-tv.ru')) {
                header("Location: http://shagi29.ru/go/ditz");
                exit; //die($this->conv_it($vauth_text['bad_domain']));
            }
//И далее остальной код

Но регистрация аккаунта *@gmail.com проходит легко и непринужденно.
Что не так?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы