Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Ограничение регистрации через VAuth по домен Google Apps

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


     09.01.2014    vauth, google, oauth    Все вопросы » Общие вопросы по PHP    2891

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

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

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


2 комментария

Global
Юзер

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

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

Global
Юзер

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 проходит легко и непринужденно.
Что не так?

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

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

наверх