Für die Authentifizierung bei der CCAI Platform müssen Sie einen Token-Endpunkt implementieren, um ein JSON-Webtoken als Antwort zu generieren.
Firmengeheimnis abrufen
Melden Sie sich im Contact Center AI Platform-Portal mit einem Konto mit Administratorberechtigungen an.
Gehen Sie zu Einstellungen > Entwicklereinstellungen.
Kopieren Sie das Firmengeheimnis 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:
algvonHS256.payloadmuss Nutzer-ID, Name und E-Mail-Adresse enthalten. Auch wenn der Nutzer ein anonymer Nutzer ist und sich noch nicht authentifiziert hat, ist die ID 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 sind 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}