Как получить безопасные токены сеанса AuthSub в PHP? - PullRequest
1 голос
/ 26 марта 2010

Я использую API Google / YouTube для разработки веб-приложения, которому необходим доступ к учетной записи YouTube пользователя.

Нормальные незащищенные запросы работают нормально, и я могу без проблем перевести одноразовые токены в токены сеанса. Проблема возникает, когда я пытаюсь обновить безопасный токен до токена сеанса, я получаю:

ОШИБКА - Не удалось обновить токен для CIzF3546351vmq_P____834654G: Не удалось обновить токен. Причина: Неверная подпись AuthSub.

Я использую это:

    function updateAuthSubToken($singleUseToken)
    {
        try {
        $client = new Zend_Gdata_HttpClient();
        $client->setAuthSubPrivateKeyFile('/home/myrsakey.pem', null, true);
        $sessionToken = Zend_Gdata_AuthSub::getAuthSubSessionToken($singleUseToken, $client);
        $sessionToken = Zend_Gdata_AuthSub::getAuthSubSessionToken(trim($singleUseToken), $client);  
        //$client->setAuthSubToken($sessionToken); 
        } catch (Zend_Gdata_App_Exception $e) {
            print 'ERROR - Token upgrade for ' . $singleUseToken
                . ' failed : ' . $e->getMessage();
            return;
        }
        $_SESSION['sessionToken'] = $sessionToken;
        $date = gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
        header('Authorization: AuthSub token="'.$_SESSION['sessionToken'].'" data="GET 
    https://www.youtube.com/auth_sub_request '.$date.' 15948652339726849410" '. 
    'sig="MIICXAIBAAKBgQDLJn/sr7TrmQpsEaL312k9dEpikVGFHbE+FjNg7/lfagkTZXf3'.
    't96omgSEyZat2RcckVAGs9dU5kbGLJxEaW2ChQplzCKDi+20HZZo7C1QCluaMJ6b'.
    ...
    '0pj+zWPy4T04PH3elN6EkhQ5Vxy5wbBkugqIDqfOKuM=" '.
    'sigalg="rsa-sha1"');
        }

Я не понимаю, что такое: nonce: случайное 64-битное число без знака, закодированное как десятичная строка ASCII! я должен поставить после $ date (... '. $ date.' 15948652339726849410 "'...)

Ответы [ 2 ]

0 голосов
/ 23 октября 2011

Существует способ сделать это без клиентской библиотеки, разработанной здесь: http://codershelpingcoders.com/

Посмотрите, если хотите.

0 голосов
/ 29 марта 2010

Я полагаю, что вы хотите позвонить:

$sessionToken = Zend_Gdata_AuthSub::getAuthSubSessionToken($singleUseToken, $client);

Вызов Zend_Gdata_AuthSub::AuthSubRevokeToken() аннулирует ваш одноразовый токен. Здесь есть отличный совет , который демонстрирует полный безопасный поток AuthSub.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...