Para autenticarte con CCAI Platform, debes implementar un extremo de token para generar un token web JSON como respuesta.
Obtén el secreto de la empresa
Accede al portal de Contact Center AI Platform con una cuenta que tenga permisos de administrador.
Ve a Configuración > Configuración para desarrolladores.
Copia el secreto de la empresa como
COMPANY_SECRET.
Extremo del token
El extremo del token debe mostrar un JWT que contenga la información del usuario actual. La respuesta es similar a lo que se muestra a continuación:
{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.n...."}
El token se crea con lo siguiente:
algdeHS256.payloaddebe contener el identificador, el nombre y el correo electrónico del usuario. Incluso si el usuario es un usuario anónimo y aún no se autenticó, se requiere el identificador para que el SDK funcione como se espera.Firma la firma con
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)
Ejemplos
Estos son algunos ejemplos. Usamos /auth/token como extremo.
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}