Получить загружаемую ссылку с GitHub Zipball URL - PullRequest
0 голосов
/ 14 апреля 2020
if ( is_null( $this->github_response ) ) { // Do we have a response?
        $request_uri = sprintf( 'https://api.github.com/repos/%s/%s/releases', $this->username, $this->repository ); // Build URI

        if( $this->authorize_token ) { // Is there an access token?
           /* $request_uri = add_query_arg( 'access_token', $this->authorize_token, $request_uri ); // Append it*/



            $basicauth = 'token ' . $this->authorize_token;
            $headers = array( 
                    'Authorization' => $basicauth
            );
        }

        $pload = array(
            'headers' => $headers
            );
        $response = json_decode( wp_remote_retrieve_body( wp_remote_get( $request_uri, $pload ) ), true ); // Get JSON and parse it

        if( is_array( $response ) ) { // If it is an array
            $response = current( $response ); // Get the first item
        }

        if( $this->authorize_token ) { // Is there an access token?
            $response['zipball_url'] = add_query_arg( 'access_token', $this->authorize_token, $response['zipball_url'] ); // Update our zip url with token
        }

        $this->github_response = $response; // Set it to our property
    }

Моя цель - получить загружаемый URL из последней версии git. Я также получаю загружаемый URL с этим кодом. Но проблема в том, что GitHub отправил мне электронное письмо об устаревшей проблеме: Устаревшая аутентификация API через параметры запроса.

Я прочитал do c из github, но не смог ее решить. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 15 апреля 2020

GitHub осуждает доступ к API с помощью параметра запроса access_token. Проблема этого подхода заключается в том, что он приводит к тому, что токены регистрируются в различных журналах (не в GitHub, а в большинстве других), что является огромной проблемой безопасности.

Если вы хотите сделать запрос API, вы следует передать токен в заголовке Authorization в форме token TOKEN, где TOKEN - это значение вашего токена, а вовсе не в URL. В своем коде вы добавляете параметр access_token к URL-адресу zipball, чего не следует делать; Вы должны использовать заголовок Authorization, как вы делали для начального запроса. Вы также должны быть готовы следовать перенаправлениям в случае необходимости.

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