Paper Contacter le support | état du système L'état du système
Contenu de la page

    Créer des informations d'identification client

    Cet exemple vous permet de créer des informations d'identification client pour un ou plusieurs comptes, en leur attribuant les autorisations d'API que vous choisissez.

    Introduction

    L'obtention des informations d'identification du client est une condition préalable unique pour obtenir des jetons d'accès, que la majorité des API Brightcove utilisent pour authentifier les demandes.

    Pour une explication complète des informations d'identification du client, voir comment fonctionne le service Brightcove OAuth.

    Cet exemple vous montre comment obtenir les informations d'identification du client à partir d'une application Web. Parce que le OAuth API CORS n'est pas activé et les demandes doivent être faites du côté serveur, l'application envoie les informations nécessaires à un proxy, qui envoie ensuite la demande de l'API et renvoie la réponse au client. Le proxy ici est écrit en PHP, mais n'importe quel langage côté serveur fera l'affaire - il vous suffit de pouvoir envoyer une demande POST à ​​l'application via Internet.

    Obtenir votre BC_TOKEN

    Pour obtenir une client_id et client_secret via le OAuth API, Vous aurez besoin d'un BC_TOKEN pour authentifier votre demande. Votre BC_TOKEN est défini en tant que cookie lorsque vous vous connectez à Studio. Vous pouvez obtenir ce cookie comme vous le souhaitez, mais pour le rendre plus facile, nous avons créé l'extrait de code JavaScript suivant: vous pouvez le coller dans la console développeur lorsque vous êtes connecté à Studio, appuyez sur retourneret une invite apparaîtra contenant le BC_TOKEN:

    Obtenir l'application d'informations d'identification

    Code Source

    Trouver tout le code associé à cet exemple dans cette GitHub référentiel.

    Exemple d'application

    Voir le stylo OAuth API Exemple: Créer les informations d'identification du client par Brightcove Learning Services (@rcrooks1969) Sur CodePen.

    Utilisation du CodePen

    Voici quelques conseils pour utiliser efficacement le CodePen ci-dessus:

    • Basculer l'affichage réel du player en cliquant sur le Le résultat .
    • Cliquez HTML / CSS / JS boutons pour afficher l'un des types de code.
    • Cliquez Modifier sur CodePen dans le coin supérieur droit pour bifurquer ce CodePen dans votre propre compte.
    • Trouver tout le code associé à cet exemple dans cette GitHub référentiel.

    Code de proxy

    Afin de créer votre propre version de l'exemple d'application sur cette page, vous devez créer et héberger votre propre proxy. Ce proxy est quelque peu différent du proxy utilisé pour la plupart de nos exemples d'applications, car l'authentification pour le OAuth API La méthode de création des informations d'identification du client est différente de celle utilisée pour l'authentification générale de l'API. Le code complet du proxy utilisé ici est présenté ci-dessous.

            <?php
            /**
             * client-credentials-proxy.php - proxy for Brightcove RESTful APIs
             * gets a client id and client secret and returns the whole response
             * Accessing:
             *         (note you should *always* access the proxy via HTTPS)
             *     Method: POST
             *
             * @post {string} bc_token - BC_TOKEN with admin permissions on all accounts that credentials are requested for
             * @post {JSONstring} requestBody - the full request body as a JSON string
             *
             * @returns {string} $response - JSON response received from the OAuth API
             */
            
            // security checks
            if (strpos($_SERVER['HTTP_REFERER'], 'solutions.brightcove.com') == false && strpos($_SERVER['HTTP_REFERER'], 'ondemand.brightcovelearning.com') == false && strpos($_SERVER['HTTP_REFERER'], 'video.brightcovelearning.com') == false && strpos($_SERVER['HTTP_REFERER'], 's.codepen.io') == false && strpos($_SERVER['HTTP_REFERER'], 'fiddle.jshell.net') == false && strpos($_SERVER['HTTP_REFERER'], 'players.brightcove.net') == false && strpos($_SERVER['HTTP_REFERER'], 'support.brightcove.com') == false && strpos($_SERVER['HTTP_REFERER'], 'master-7rqtwti-6sglloa4yrkti.us.platform.sh') == false) {
                exit('{"ERROR":"Only requests from http://docs.brightcove.com or http:solutions.brightcove.com are accepted by this proxy"}');
            }
            
            // CORS enablement and other headers
            header("Access-Control-Allow-Origin: *");
            header("Content-type: application/json");
            header("X-Content-Type-Options: nosniff");
            header("X-XSS-Protection");
            
            // get data or die
            if ($_POST["requestBody"]) {
                $data = json_decode($_POST["requestBody"]);
            } else {
              exit("request body missing");
            }
            // get request type or default to POST
            if ($_POST["requestType"]) {
                $method = $_POST["requestType"];
            } else {
              $method = 'POST';
            }
            // get bc_token or die
            if ($_POST["bc_token"]) {
                $bc_token = $_POST["bc_token"];
            } else {
              exit("bc_token missing");
            }
            
            $request  = "https://oauth.brightcove.com/v4/client_credentials";
            $ch       = curl_init($request);
            curl_setopt_array($ch, array(
                CURLOPT_CUSTOMREQUEST  => $method,
                CURLOPT_RETURNTRANSFER => TRUE,
                CURLOPT_SSL_VERIFYPEER => FALSE,
                CURLOPT_HTTPHEADER     => array(
                    'Content-type: application/json',
                    "Authorization: BC_TOKEN {$bc_token}"
                ),
                CURLOPT_POSTFIELDS => json_encode($data)
            ));
            $response = curl_exec($ch);
            curl_close($ch);
            
            // Check for errors
            if ($response === FALSE) {
                die(curl_error($ch));
                exit('An error occurred on making the request');
            } else {
              echo $response;
            }
            
            ?>
            

    Dernière mise à jour de la page le 13 août 2020