כדי לבצע אימות באמצעות CCAI Platform, צריך להטמיע נקודת קצה של אסימון כדי ליצור אסימון אינטרנט מסוג JSON כתגובה.
אחזור סוד החברה
נכנסים לפורטל Contact Center AI Platform באמצעות חשבון עם הרשאות אדמין.
עוברים אל הגדרות > הגדרות למפתחים.
מעתיקים את הסוד של החברה כ-
COMPANY_SECRET.
נקודת הקצה של הטוקן
נקודת הקצה של האסימון חייבת להחזיר JWT שמכיל את פרטי המשתמש הנוכחי. התגובה אמורה להיראות כך:
{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.n...."}
הטוקן נוצר עם:
algמתוךHS256.השדה
payloadחייב להכיל את מזהה המשתמש, השם וכתובת האימייל. גם אם המשתמש הוא משתמש אנונימי ועדיין לא עבר אימות, המזהה נדרש כדי שה-SDK יפעל כצפוי.חתימה באמצעות
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)
דוגמאות
ריכזנו כאן כמה דוגמאות. אנחנו משתמשים ב-/auth/token כנקודת הקצה.
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}