Für die Authentifizierung bei der CCAI-Plattform müssen Sie einen Token-Endpunkt implementieren, um ein JSON-Webtoken als Antwort zu generieren.
Unternehmensgeheimnis abrufen
Melden Sie sich mit einem Konto mit Administratorberechtigungen im Contact Center AI Platform-Portal an.
Gehen Sie zu Einstellungen > Entwicklereinstellungen.
Kopieren Sie das Unternehmens-Secret als
COMPANY_SECRET.
Token-Endpunkt
Der Token-Endpunkt muss ein JWT mit den Informationen des aktuellen Nutzers zurückgeben. Das Ergebnis sieht etwa so aus:
{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.n...."}
Das Token wird mit Folgendem erstellt:
algzuHS256.payloadmuss Nutzer-ID, Name und E‑Mail-Adresse enthalten. Auch wenn der Nutzer anonym ist und sich noch nicht authentifiziert hat, ist die Kennung erforderlich, damit das SDK wie erwartet funktioniert.Signieren Sie die Signatur mit
COMPANY_SECRET.
header = {"alg": "HS256"}
payload = {
"iss": "{YOUR_COMPANY_NAME}",
"iat": $unix_timestamp_now,
"exp": $unix_timestamp_now + 3600,
"identifier": "{CURRENT_USER_ID}",
"name": "{CURRENT_USER_NAME}",
"email": "{CURRENT_USER_EMAIL}",
}
token = jwt_encode(header, payload, COMPANY_SECRET)
Beispiele
Hier einige Beispiele. Wir verwenden /auth/token als Endpunkt.
Express (Node.js)
const express = require('express')
const jwt = require('jsonwebtoken')
const COMPANY_NAME = 'AMCE'
const COMPANY_SECRET = '__read_from_config__'
const app = express()
app.use(express.json())
app.use(your_session_middleware)
app.get('/auth/token', function (req, res) {
const now = parseInt(Date.now() / 1000, 10)
const payload = {
'iss': COMPANY_NAME,
'iat': now,
'exp': now + 3600,
}
if (req.user) {
payload.identifier = req.user.id,
payload.name = req.user.name
payload.email = req.user.email
}
const token = jwt.sign(payload, COMPANY_SECRET, { algorithm: 'HS256' })
res.json({ token })
})
Flask (Python)
import time
from flask import Flask, request
from joserfc import jwt, jwk
app = Flask(__name__)
COMPANY_NAME = 'AMCE'
COMPANY_SECRET = '__read_from_config__'
secret_key = jwk.OctKey.import_key(COMPANY_SECRET)
@app.route('/auth/token')
def auth_token():
now = int(time.time())
payload = {
'iss': COMPANY_NAME,
'iat': now,
'exp': now + 3600,
}
if (request.user) {
payload.identifier = request.user.id,
payload.name = request.user.name
payload.email = request.user.email
}
token = jwt.encode({'alg': 'HS256'}, payload, secret_key)
return {'token': token}