Support Kontakt Support | Systemstatus Systemstatus

Erstellen Sie Clientanmeldeinformationen

In diesem Beispiel können Sie Clientanmeldeinformationen für ein oder mehrere Konten erstellen und ihnen die von Ihnen ausgewählten API-Berechtigungen zuweisen.

Einführung

Das Abrufen von Client-Anmeldeinformationen ist eine einmalige Voraussetzung für das Abrufen von Zugriffstoken, die von den meisten Brightcove-APIs zur Authentifizierung von Anforderungen verwendet werden.

Eine vollständige Erläuterung der Client-Anmeldeinformationen finden Sie unter Funktionsweise des Brightcove OAuth-Dienstes.

In diesem Beispiel wird gezeigt, wie Clientanmeldeinformationen aus einer Webanwendung abgerufen werden. Weil der OAuth API ist nicht CORS-fähig und Anfragen müssen serverseitig gestellt werden, die App sendet notwendige Informationen an einen Proxy, der dann die API-Anfrage stellt und die Antwort zurück an den Client sendet. Der Proxy hier ist in PHP geschrieben, aber jede serverseitige Sprache reicht aus - Sie müssen lediglich eine POST-Anfrage über das Internet an die App senden können.

Holen Sie sich Ihre BC_TOKEN

Um eine zu bekommen client_id und client_secret über das OAuth API, Müssen Sie ein BC_TOKEN um Ihre Anfrage zu authentifizieren. Ihr BC_TOKEN wird als ein Cookie festgelegt, wenn Sie sich bei Studio anmelden. Sie können diesen Cookie nach Belieben verwenden, aber um es einfacher zu machen, haben wir das folgende JavaScript-Snippet erstellt - Sie können es in die Entwicklerkonsole einfügen, wenn Sie in Studio angemeldet sind, drücken Sie Rückkehrund eine Eingabeaufforderung mit dem BC_TOKEN erscheint:

Anmeldedaten-App abrufen

Hier finden Sie den gesamten mit diesem Beispiel verbundenen Code GitHub-Repository.

Sieh den Stift OAuth API Beispiel: Create Client Credentials von Brightcove Learning Services (@ rcrooks1969) Auf CodePen.

Verwenden des CodePen

Hier sind einige Tipps, um den oben genannten CodePen effektiv zu nutzen:

  • Schalten Sie die tatsächliche Anzeige des um player durch Klicken auf Ergebnis klicken.
  • Klicken Sie auf die HTML / CSS / JS Schaltflächen, um einen der Codetypen anzuzeigen.
  • Eine detaillierte Auf CodePen bearbeiten in der oberen rechten Ecke, um diesen CodePen in Ihr eigenes Konto einzugeben.
  • Hier finden Sie den gesamten mit diesem Beispiel verbundenen Code GitHub-Repository.

Proxy-Code

Um Ihre eigene Version der Beispiel-App auf dieser Seite zu erstellen, müssen Sie einen eigenen Proxy erstellen und hosten. Dieser Proxy unterscheidet sich etwas vom Proxy, der für die meisten unserer Beispiel-Apps verwendet wird, da die Authentifizierung für die OAuth API Die Methode zum Erstellen von Clientanmeldeinformationen unterscheidet sich von der allgemeinen API-Authentifizierung. Der vollständige Code für den hier verwendeten Proxy wird unten angezeigt.

        <?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;
        }
        
        ?>
        

Seite zuletzt aktualisiert am 12. Juni 2020