Konfigurieren Sie Ihren Backend-Server
Wenn Sie mit dem Vonage Client SDK arbeiten, muss Ihr Backend-Server einige Schlüsselkomponenten handhaben, hauptsächlich die Reaktion auf Webhooks von Vonage, die Erstellung von Benutzer und erzeugen JWTs für diese Benutzer. Mehr über diese verschiedenen Komponenten und ihr Zusammenspiel erfahren Sie in der Erstellen Sie Ihren Bewerbungsleitfaden.
Um eine vorgefertigte Implementierung der in den Handbüchern besprochenen Concepts zu sehen, können Sie die Client SDK Beispiel Server-Vorlage mit Code Hub.
In dieser Anleitung wird Node.JS verwendet, das Vonage JWT SDKund die Vonage Server SDK. Ihr Client SDK-Backend-Server kann jedoch in jeder beliebigen Sprache geschrieben werden. Sie können die SDKs mit NPM installieren:
npm install @vonage/jwt @vonage/server-sdk
Benutzer erstellen
Jetzt, wo Sie die SDKs installiert haben, können Sie Benutzer erstellen:
import { Vonage } from "@vonage/server-sdk";
import { tokenGenerate } from '@vonage/jwt';
const vonage = new Vonage(
{
applicationId: process.env.API_APPLICATION_ID,
privateKey: process.env.PRIVATE_KEY
}
);
async function createUser(username) {
try {
const userResponse = await vonage.users.createUser({
name: username,
displayName: username
});
} catch (e) {
console.log(e);
}
}
Weitere Informationen zu den Anforderungsparametern und Antworten für die Entität Users finden Sie in der API-Spezifikation.
Erzeugen von JWTs für das Client SDK
Wenn Sie Benutzer erstellt haben, können Sie nun ein JWT für diesen Benutzer erstellen. Dies ist das JWT, das das Client SDK erwartet, wenn Sie aufrufen createSession. Die Erstellung eines JWT für einen Benutzer erfordert ACL-Pfade und eine sub Anspruch. Die ACL-Pfade werden verwendet, um einzuschränken, auf welche Endpunkte das JWT zugreifen kann.
HINWEIS: ACLs steuern, welche Aktionen der Benutzer durchführen kann. Sie können die ACL-Pfade um Berechtigungen einzuschränken.
function generateUserJWT(username) {
const aclPaths = {
"/*/users/**": {},
"/*/conversations/**": {},
"/*/sessions/**": {},
"/*/devices/**": {},
"/*/image/**": {},
"/*/media/**": {},
"/*/push/**": {},
"/*/knocking/**": {},
"/*/legs/**": {}
};
return tokenGenerate(applicationId, privateKey, {
subject: username,
acl: aclPaths
});
}
Sie können einen Endpunkt auf Ihrem Server bereitstellen, der dieses generierte Token an Ihre Android-, iOS- und Web Client SDK-Applikationen zurückgibt:
app.post('/getJWT', async (req, res) => {
const username = req.body.username;
try {
// Perform authorization and validation
res.json(
{
jwt: generateUserJWT(username)
}
);
} catch(e) {
console.log(e);
}
});
Behandlung eingehender Webhooks
Wenn die serverCall Funktion in einer Android-, iOS- und Web Client SDK-Anwendung verwendet wird, erhält die URL, die als "Antwort-URL" in Ihrer Vonage-Applikation festgelegt wurde, eine eingehende Anfrage. Mehr über den Prozess erfahren Sie in der "Leitfaden "Anrufe tätigen.
Ihr Server sollte mit einer Steuerungsobjekt aufrufen um den Ablauf des Anrufs zu steuern. Um z. B. einen eingehenden Anruf mit einem Benutzer namens Alice zu verbinden, würden Sie ein Call Control Object ähnlich dem folgenden zurückgeben.
[
{
"action": "connect",
"from": "447700900000",
"endpoint": [
{
"type": "app",
"user": "Alice"
}
]
}
]
Haben Sie Fragen?
Sollten Sie weitere Fragen, Probleme oder Feedback haben, kontaktieren Sie uns bitte unter devrel@vonage.com oder die Vonage Entwickler-Community Slack.