Untuk melakukan autentikasi dengan Platform CCAI, Anda harus menerapkan endpoint token untuk membuat token web JSON sebagai respons.
Mendapatkan secret perusahaan
Login ke portal Contact Center AI Platform menggunakan akun dengan izin administrator.
Buka Setelan > Setelan Developer.
Salin Secret Perusahaan sebagai
COMPANY_SECRET.
Endpoint token
Endpoint token harus menampilkan JWT yang berisi informasi pengguna saat ini. Responsnya mirip dengan hal berikut ini:
{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.n...."}
Token dibuat dengan:
algdariHS256.payloadharus berisi ID pengguna, nama, dan email. Meskipun pengguna adalah pengguna anonim dan belum diautentikasi, ID diperlukan agar SDK berfungsi seperti yang diharapkan.Tandatangani tanda tangan dengan
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)
Contoh
Berikut beberapa contohnya, kita menggunakan /auth/token sebagai 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}