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 API que vous choisissez.

Introduction

L'obtention des informations d'identification du client est une condition préalable à l'obtention 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 client à partir d'une application Web. Étant donné que l'API OAuth n'est pas compatible CORS et que les requêtes doivent être effectuées côté serveur, l'application envoie les informations nécessaires à un proxy, qui effectue ensuite la requête 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 requête POST à l'application via Internet.

Obtenir votre BC_TOKEN

Pour obtenir un client_id et client_secret via l'API OAuth, vous aurez besoin d'un BC_TOKEN pour authentifier votre demande. Votre BC_TOKEN est défini comme cookie lorsque vous vous connectez à Studio. Vous pouvez obtenir ce cookie comme bon vous semble, mais pour vous faciliter la tâche, nous avons créé l'extrait de code JavaScript suivant. Vous pouvez le coller dans la console du développeur lorsque vous êtes connecté à Studio, appuyer sur la touche Retour et un message contenant le BC_TOKEN apparaîtra :

Obtenir l'application d'identification

Code source

Retrouvez tout le code associé à cet exemple dans ce référentiel GitHub.

Exemple d'application

Voir le stylo Exemple d'API OAuth : Créez des informations d'identification client à l'aide de Brightcove Learning Services (@rcrooks1969) sur CodePen.

Utilisation du CodePen

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

  • Basculez l'affichage réel du lecteur en cliquant sur le bouton Résultat bouton.
  • Clique le HTML/CSS/JS pour afficher UN des types de code.
  • Cliquez sur Modifier sur CodePen dans le coin supérieur droit pour insérer ce CodePen dans votre propre compte.
  • Retrouvez tout le code associé à cet exemple dans ce référentiel GitHub.

Code 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 la méthode API OAuth pour la création d'informations d'identification client est différente de celle pour l'authentification API générale. Le code complet du proxy utilisé ici est indiqué ci-dessous.

        <? php
        /**
         * client-credentials-proxy.php : proxy pour les API RESTful de Brightcove
         * obtient un identifiant client et un secret client et retourne la réponse entière
         * Accès :
         * (notez que vous devriez *toujours* accéder au proxy via HTTPS)
         * Méthode : POST
         *
         * @post {string} bc_token - BC_TOKEN avec des autorisations d'administrateur sur tous les comptes pour lesquels des informations d'identification sont demandées
         * @post {JSONString} RequestBody - le corps complet de la demande sous forme de chaîne JSON
         *
         * @returns {string} $response - Réponse JSON reçue de l'API OAuth
         */
        
        //contrôles de sécurité
        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') == faux &strpos ($_REFERER ['HTTP_REFERER'] ER '],' master-7rqtwti-6sglloa4yrkti.us.platform.sh ') == false) {
            exit ('{"ERROR » : Seules les requêtes provenant de https://docs.brightcove.com ou de http:solutions.brightcove.com sont acceptées par ce proxy «}') ;
        }
        
        //Activation CORS et autres en-têtes
        en-tête (« Access-Control-Allow-Origin : * ») ;
        en-tête (« Content-type : application/json ») ;
        (« X-Content-Type-Options : nosniff ») ;
        en-tête (« X-XSS-protection ») ;
        
        //Obtenir des données ou mourir
        if ($_POST["requestBody"]) {
            $data = json_decode ($_POST ["RequestBody"]) ;
        } else {
          sortie (« corps de requête manquant ») ;
        }
        //récupère le type de requête ou par défaut à POST
        if ($_POST["requestType"]) {
            $method = $_POST ["RequestType"] ;
        } else {
          $method = 'POST' ;
        }
        //Obtenir bc_token ou mourir
        if ($_POST ["bc_token"]) {
            $bc_token = $_POST ["bc_token"] ;
        } else {
          exit (« bc_token manquant ») ;
        }
        
        $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 => tableau (
                'Content-type : application/json',
                « Autorisation : BC_JETON {$bc_token} »
            ),
            CURLOPT_POSTFIELDS => json_encode($data)
        ))) ;
        $response = curl_exec ($ch) ;
        curl_close ($ch) ;
        
        //Vérification des erreurs
        if ($response === FALSE) {
            die (curl_error ($ch)) ;
            exit ('Une erreur s'est produite lors de l'exécution de la demande') ;
        } else {
          echo $ réponse ;
        }
        
        ? >