Para autenticar com a plataforma CCAI, é necessário implementar um endpoint de token para gerar um token da Web JSON como resposta.
Receber chave secreta da empresa
Faça login no portal da Contact Center AI Platform usando uma conta com permissões de administrador.
Acesse Configurações > Configurações do desenvolvedor.
Copie o segredo da empresa como
COMPANY_SECRET.
Endpoint do token
O endpoint do token precisa retornar um JWT com as informações do usuário atual. O resultado parecido com este:
{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.n...."}
O token é criado com:
algdeHS256.payloadprecisa conter o identificador, o nome e o e-mail do usuário. Mesmo que o usuário seja anônimo e ainda não tenha feito a autenticação, o identificador é necessário para que o SDK funcione como esperado.Assine com
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)
Exemplos
Confira alguns exemplos. Estamos usando /auth/token como endpoint.
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}