Kundenanmeldeinformationen erstellen

Mit diesem Beispiel können Sie Client-Anmeldeinformationen für ein oder mehrere Konten erstellen und ihnen die von Ihnen gewählten API-Berechtigungen zuweisen.

Einleitung

Das Abrufen von Client-Anmeldeinformationen ist eine einmalige Voraussetzung für den Erhalt von Zugriffstoken, die die meisten Brightcove-APIs zur Authentifizierung von Anfragen verwenden.

Eine vollständige Erläuterung der Kundenanmeldeinformationen finden Sie unter So funktioniert der Brightcove OAuth-Dienst.

In diesem Beispiel wird gezeigt, wie Sie Client-Anmeldeinformationen von einer Web-App abrufen. Da die OAuth-API nicht CORS-fähig ist und Anfragen von der Serverseite gestellt werden müssen, sendet die App die erforderlichen 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 nur in der Lage sein, eine POST-Anfrage über das Internet an die App zu senden.

Ihr BC_TOKEN erhalten

Um einen zu bekommen client_id und client_secret über die OAuth-API benötigen Sie a BC_TOKEN um Ihre Anfrage zu authentifizieren. Ihr BC_TOKEN wird als Cookie gesetzt, wenn Sie sich bei Studio anmelden. Sie können dieses Cookie nach Belieben abrufen, 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, die Eingabetaste drücken und eine Eingabeaufforderung mit dem BC_TOKEN wird angezeigt:

Zugangsdaten-App abrufen

Quellcode

Suchen Sie den gesamten Code, der mit diesem Beispiel verknüpft ist, in diesem GitHub-Repository.

Beispiel-App

Siehe den Stift OAuth-API-Beispiel: Erstellen Sie Client-Anmeldeinformationen von Brightcove Learning Services (@rcrooks1969) auf CodePen.

CodePen verwenden

Hier sind einige Tipps zur effektiven Verwendung des obigen CodePen:

  • Schalten Sie die aktuelle Anzeige des Players um, indem Sie auf klicken Ergebnis Taste.
  • Drücke den HTML/CSS/JS Tasten, um EINEN der Codetypen anzuzeigen.
  • Klicken Auf CodePen bearbeiten in der oberen rechten Ecke, um diesen CodePen Ihrem eigenen Konto zuzuordnen.
  • Suchen Sie den gesamten Code, der mit diesem Beispiel verknüpft ist, in diesem GitHub-Repository.

Proxy-Code

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

        <? php
        /**
         * client-credentials-proxy.php - Proxy für Brightcove RESTful-APIs
         * erhält eine Client-ID und ein Client-Geheimnis und gibt die gesamte Antwort zurück
         * Zugriff auf:
         * (Beachten Sie, dass Sie * immer * über HTTPS auf den Proxy zugreifen sollten)
         * Methode: BEITRAG
         *
         * @post {string} bc_token - BC_TOKEN mit Administratorrechten für alle Konten, für die Anmeldeinformationen angefordert werden
         * @post {JSONstring} requestBody - der vollständige Anforderungshauptteil als JSON-Zeichenfolge
         *
         * @returns {string} $ response - Von der OAuth-API empfangene JSON-Antwort
         * /
        
        // Sicherheitskontrollen
        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'], 'player.brightcove.net') == false && strpos ($ _ SERVER ['HTTP_REFERER'], 'support.brightcove.com ') == false && strpos ($ _ SERVER [' HTTP_REFERER '],' master-7rqtwti-6sglloa4yrkti.us.platform.sh ') == false) {
            exit ('{"ERROR“: Nur Anfragen von https://docs.brightcove.com oder https://solutions.brightcove.com werden von diesem Proxy akzeptiert "}');
        }
        
        // CORS-Aktivierung und andere Header
        header („Access-Control-Allow-Origin: *“);
        header („Inhaltstyp: Anwendung/JSON“);
        header („X-Content-Type-Optionen: nosniff“);
        header („X-XSS-Schutz“);
        
        // Daten holen oder sterben
        if ($ _POST ["requestBody"]) {
            $ data = json_decode ($ _ POST ["requestBody"]);
        } sonst {
          exit ("Anfragetext fehlt");
        }
        // Anforderungstyp abrufen oder standardmäßig POST verwenden
        if ($ _POST ["requestType"]) {
            $ method = $ _POST ["requestType"];
        } sonst {
          $ method = 'POST';
        }
        // bekomme bc_token oder stirb
        if ($ _POST ["bc_token"]) {
            $ bc_token = $ _POST ["bc_token"];
        } sonst {
          exit ("bc_token fehlt");
        }
        
        $ request = "https://oauth.brightcove.com/v4/client_credentials";
        $ ch = curl_init ($ request);
        curl_setopt_array ($ ch, array (
            CURLOPT_CUSTOMREQUEST => $ method,
            CURLOPT_RETURNTRANSFER => WAHR,
            CURLOPT_SSL_VERIFYPEER => FALSCH,
            CURLOPT_HTTPHEADER => Array (
                'Inhaltstyp: application / json',
                "Genehmigung: BC_TOKEN {$ bc_token} "
            ),
            CURLOPT_POSTFIELDS => json_encode ($ data)
        ));
        $ response = curl_exec ($ ch);
        curl_close ($ ch);
        
        // Auf Fehler prüfen
        if ($ response === FALSE) {
            die (curl_error ($ ch));
            exit ('Bei der Anforderung ist ein Fehler aufgetreten');
        } sonst {
          echo $ response;
        }
        
        ? >