Quantcast
Viewing all articles
Browse latest Browse all 6336

Авторизация Вконтакте

Выкладываю свою реализацию авторизации Вконтакте.

Описания функций класса
Скрытый текст:

PHP код:

    /**
        Function        - Запрашивает авторизацию
        string $Login    - Логин
        string $Pass    - Пароль
        return BOOL    - В случае удаче true иначе false
    **/
    
public static function Auth($Login$Pass)

    
/**
        Function        - Возвращает массив [access_token, expires_in, user_id]
                      Или одну из указанных ячеек.
        string $Key    - Ключ ячейки из массива [access_token, expires_in, user_id] или вернет все сразу
        return Array\string
    **/
    
public static function User($Key null)

    
/**
        Function    - Устанавливает UserAgent запроса, либо получает
        RETURN Void\String
    **/
    
public static function UserAgent($UserAgent null)

    
/**
        Function    - Устанавливает клиент авторизации, либо получает
        RETURN Void\String
    **/
    
public static function Client_Id($client_id null

    
/**
        Function    - Устанавливает куки запроса, либо получает
        RETURN Void\String
    **/
    
public static function FileCookie($FileCookie null)

    
/**
        Function            - Проверят, авторизован ли пользователь
        RETURN BOOL
    **/
    
public static function IsAuth() 



Пример авторизации
PHP код:

if(SendAuthVk::auth('Логин'"Пароль")) {
    
pre(SendAuthVk::User());
    
pre(SendAuthVk::User('access_token')); // Получаем тока аксес токен



Класс
Скрытый текст:
PHP код:

class SendAuthVk {
    private static 
$User;
    private static 
$IsAuth false;
    static 
$client_id 4961926;
    static 
$FileCOOKIE 'SendVk.cookie';
    static 
$USERAGENT 'Mozilla/5.0 (Windows NT 6.3; rv:38.0) Gecko/20100101 Firefox/38.0';
    
    
/**
        Function        - Запрашивает авторизацию
        string $Login    - Логин
        string $Pass    - Пароль
        return BOOL        - В случае удаче true иначе false
    **/
    
public static function Auth($Login$Pass) {
        
self::$User null;
        
self::$IsAuth false;
        if(empty(
$Login) and empty($Pass)) return false;
        if(
file_exists(self::$FileCOOKIE)) unlink(self::$FileCOOKIE);
        
        
$Vk curl_init('http://m.vk.com/');
        
curl_setopt_array($Vk, array(
            
CURLOPT_USERAGENT => self::$USERAGENT,
            
CURLOPT_FOLLOWLOCATION => true,
            
CURLOPT_RETURNTRANSFER => true,
            
CURLOPT_SSL_VERIFYPEER => false,
            
CURLOPT_COOKIEFILE => self::$FileCOOKIE)
        );

        
preg_match('/<form method="post" action="([\w\W]+)" novalidate>/U'curl_exec($Vk), $Url);
        if(empty(
$Url[1])) {
            
curl_close($Vk);
            return 
false;
        }
        
curl_setopt($VkCURLOPT_URL,  $Url[1]);
        
curl_setopt($VkCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($VkCURLOPT_HTTPHEADER, array('Host' => 'login.vk.com'));
        
curl_setopt($VkCURLOPT_POSTtrue);
        
curl_setopt($VkCURLOPT_POSTFIELDShttp_build_query(array('email' => (string)$Login'pass' => (string)$Pass)));
        
curl_exec($Vk);

        
curl_setopt($VkCURLOPT_URLcurl_getinfo($VkCURLINFO_EFFECTIVE_URL));
        
curl_setopt($VkCURLOPT_CUSTOMREQUEST'GET');
        
curl_setopt($VkCURLOPT_HTTPHEADER, array('Host' => 'm.vk.com'));
        
curl_setopt($VkCURLOPT_POSTfalse);
        
curl_exec($Vk);

        
curl_setopt($VkCURLOPT_URL'http://oauth.vk.com/authorize?client_id='.self::$client_id.'&scope=2079999&redirect_uri=https://oauth.vk.com/blank.html&display=wap&response_type=token');
        
curl_exec($Vk);

        
preg_match('/<form method="post" action="([\w\W]+)">/U'curl_exec($Vk), $Url);
        if(empty(
$Url[1])) {
            
curl_close($Vk);
            return 
false;
        }
        
curl_setopt($VkCURLOPT_URL,  $Url[1]);
        
curl_setopt($VkCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($VkCURLOPT_HTTPHEADER, array('Host' => 'login.vk.com'));
        
curl_setopt($VkCURLOPT_POSTtrue);
        
curl_exec($Vk);
        
$Url parse_url(curl_getinfo($VkCURLINFO_EFFECTIVE_URL));
        
parse_str($Url['fragment'], $Url);
        
curl_close($Vk);
        if(
array_key_exists('access_token'$Url)) {
            
self::$User $Url;
            
self::$IsAuth true;
            return 
true;
        }
        return 
false;
    }
    
/**
        Function            - Возвращает массив [access_token, expires_in, user_id]
                              Или одну из указанных ячеек.
        string $Key            - Ключ ячейки из массива [access_token, expires_in, user_id] или вернет все сразу
        return Array\string
    **/
    
public static function User($Key null) {
        return (
$Key === null) ? self::$User self::$User[$Key];
    }
    
    
/**
        Function    - Устанавливает UserAgent запроса, либо получает
        RETURN Void\String
    **/
    
public static function UserAgent($UserAgent null) {
        if(
$UserAgent === null)
            return 
self::$USERAGENT;
        else 
            
self::$USERAGENT $UserAgent;
    }
    
    
/**
        Function    - Устанавливает клиент авторизации, либо получает
        RETURN Void\String
    **/
    
public static function Client_Id($client_id null) {
        if(
$client_id === null)
            return 
self::$client_id;
        else 
            
self::$client_id $client_id;
    }
    
/**
        Function    - Устанавливает куки запроса, либо получает
        RETURN Void\String
    **/
    
public static function FileCookie($FileCookie null) {
        if(
$FileCookie === null)
            return 
self::$FileCOOKIE;
        else 
            
self::$FileCOOKIE $FileCookie;
    }

    
/**
        Function            - Проверят, авторизован ли пользователь
        RETURN BOOL
    **/
    
public static function IsAuth() {
        return 
self::$IsAuth;
    }
    



Viewing all articles
Browse latest Browse all 6336

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>