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