Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Авторизация пользователя ВК на сервере (http://www.flasher.ru/forum/showthread.php?t=208746)

alexandrratush 23.08.2014 02:46

Авторизация пользователя ВК на сервере
 
Привет всем!
Нужно произвести проверку пользователя на сервере.
Вроде все так просто, но все время возвращается false.
Все параметры приходят правильные, проверял 100 раз.
PHP код:

<?php
class Auth
{
    var 
$appID '123456789';
    var 
$secretKey 'QWERTY';

    public function 
check($socialID$authKey
    {
        
$realKey md5($appID."_".$socialID."_".$secretKey);
        if (
$authKey == $realKey)
        {
            return 
true;
        }
        else
        {
            return 
false;
        }
    }
}
?>

P.S. Может этот способ уже не работает?

caseyryan 23.08.2014 07:53

Это же php) в нем много странностей для флешера :D
PHP код:

    var $appID '123456789'
    var 
$secretKey 'QWERTY'

    public function 
check($socialID$authKey)  
    { 
        
$realKey md5($this->$appID "_" $socialID "_" $this->$secretKey); 
        if (
$authKey == $realKey
        { 
            return 
true
        } 
        else 
        { 
            return 
false
        } 
    } 


Хотя вообще я бы лучше это в статический метод вынес. Ну или можно appID и secretKey вообще сделать константами

alexandrratush 23.08.2014 10:57

caseyryan, спасибо огромное, подзабыл я немного ПХП.)
То есть можно использовать этот метод так?
PHP код:

public static function check($socialID$authKey
{
    
$realKey md5(self::APP_ID "_" $socialID "_" self::SECRET_KEY);
    if (
$authKey != $realKey)
    {
        throw new 
Exception("Authentication key is not valid");
    }
}

...
// Вызываем где нужно в методе
Auth::check($socialID$authKey); 

Но тогда придется передавать каждый раз auth и socialID для проверки пользователя? Это нормально?

caseyryan 23.08.2014 13:27

Цитата:

Но тогда придется передавать каждый раз auth и socialID для проверки пользователя? Это нормально?
Конечно. А как иначе? Там же разные пользователи будут проверяться
Цитата:

PHP код:

$realKey md5(self::APP_ID "_" $socialID "_" self::SECRET_KEY); 


Ну, константы в пыхе через define() определяются. Но это не так важно, такой вариант тоже будет нормально работать

alexandrratush 23.08.2014 20:11

Вопрос по отправке каждый раз socialID и authKey решил так:
Использую маппинг для обмена между клиентом и сервером. На клиенте есть базовый для всех класс, в конструкторе которого проходит присвоение значений нужным переменным. Остается только расширить этот класс и вызвать родительский конструктор. Как такая идея?
Код AS3:

package core.vo 
{
        import model.SocialProxy;
        /**
        * ...
        * @author alexandrratush
        */

        [RemoteClass(alias="core.vo.AuthData")]
        public class AuthData
        {
                public var socialID:String;
                public var authKey:String;
                public var status:Boolean;
 
                public function AuthData()
                {
                        socialID = SocialProxy.socialID;
                        authKey = SocialProxy.authKey;
                }
 
        }
 
}


caseyryan 23.08.2014 20:24

У меня вообще используется класс Packet, который разруливает все отправки на сервер. Передаю туда любые параметры, а он внутри сам еще добавляет authKey и viewer_id ко всем запросам. Так что вообще не парюсь. Собственно, решение почти такое же. С некоторыми нюансами, например тем, что не надо расширять класс, а можно использовать его самостоятельно

alexandrratush 23.08.2014 21:02

Тоже думал использовать такой подход, но решил делать связь между клиентом и сервером с помощью VO, который поддерживает AMFPHP. Отсюда и мой подход мне кажется более удачным. Посмотрю что из этого получится.


Часовой пояс GMT +4, время: 15:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.