Trình Kết Nối Auth0
Kết nối Auth0 với Brevo qua Tajo để đồng bộ hồ sơ người dùng xác thực, forward các sự kiện đăng ký/đăng nhập và kích hoạt chiến dịch dựa trên trạng thái danh tính.
Tổng Quan
| Thuộc Tính | Giá Trị |
|---|---|
| Nền Tảng | Auth0 |
| Danh Mục | Tùy Chỉnh |
| Độ Phức Tạp Thiết Lập | Trung Bình |
| Tích Hợp Chính Thức | Không |
| Dữ Liệu Đồng Bộ | Người Dùng, Sự Kiện, Tổ Chức |
| Loại API | REST API (Management API v2) |
| Xác Thực | Machine-to-Machine (M2M) OAuth |
Tính Năng
- Đồng bộ hồ sơ người dùng - Nhập người dùng Auth0 sang liên hệ Brevo
- Kích hoạt sự kiện - Forward sự kiện đăng ký, đăng nhập và mật khẩu sang Brevo
- Đồng bộ tổ chức - Ánh xạ tổ chức Auth0 sang phân đoạn hoặc thuộc tính Brevo
- Dữ liệu User metadata - Đồng bộ app_metadata và user_metadata tùy chỉnh
- Log streams - Stream log Auth0 sang Tajo để xử lý sự kiện theo thời gian thực
Yêu Cầu
Trước khi bắt đầu, hãy đảm bảo bạn có:
- Tài khoản Auth0 (Free, Essential, Professional, hoặc Enterprise)
- Auth0 tenant với Management API v2 được bật
- Machine-to-Machine Application với quyền phù hợp
- Tài khoản Brevo với quyền truy cập API
- Tài khoản Tajo
Xác Thực
Xác Thực Machine-to-Machine (M2M)
Auth0 sử dụng OAuth 2.0 Client Credentials grant cho truy cập server-to-server.
# Lấy access tokencurl -X POST "https://YOUR_TENANT.auth0.com/oauth/token" \ -H "Content-Type: application/json" \ -d '{ "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "audience": "https://YOUR_TENANT.auth0.com/api/v2/", "grant_type": "client_credentials" }'Quyền API
M2M Application cần quyền Management API cụ thể. Tránh cấp read:users_app_metadata trừ khi cần thiết, vì nó truy cập dữ liệu nhạy cảm.
Quyền Cần Thiết
read:usersread:user_idp_tokensread:logsread:organizationsread:organization_membersCấu Hình
Thiết Lập Cơ Bản
connectors: auth0: enabled: true domain: "${AUTH0_DOMAIN}" client_id: "${AUTH0_CLIENT_ID}" client_secret: "${AUTH0_CLIENT_SECRET}"
sync: users: true organizations: true logs: false # Sử dụng log streams thay thếÁnh Xạ Trường
field_mapping: email: email given_name: FIRSTNAME family_name: LASTNAME phone_number: SMS created_at: SIGNUP_DATE last_login: LAST_LOGIN logins_count: LOGIN_COUNT app_metadata.plan: PLAN_TYPE user_metadata.company: COMPANY_NAMEAPI Endpoints
| Phương Thức | Endpoint | Mô Tả |
|---|---|---|
GET | /api/v2/users | Liệt kê người dùng |
GET | /api/v2/users/{id} | Lấy người dùng theo ID |
PATCH | /api/v2/users/{id} | Cập nhật người dùng |
GET | /api/v2/logs | Lấy event logs |
GET | /api/v2/organizations | Liệt kê tổ chức |
GET | /api/v2/organizations/{id}/members | Thành viên tổ chức |
Ví Dụ Code
Khởi Tạo Trình Kết Nối
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
await tajo.connectors.connect('auth0', { domain: process.env.AUTH0_DOMAIN, clientId: process.env.AUTH0_CLIENT_ID, clientSecret: process.env.AUTH0_CLIENT_SECRET});Đồng Bộ Người Dùng Sang Brevo
// Đồng bộ người dùng Auth0 sang liên hệ Brevoawait tajo.connectors.sync('auth0', { type: 'incremental', resources: ['users'], since: '2024-01-01', batchSize: 100});Phân Trang
Management API v2 sử dụng phân trang dựa trên checkpoint. Tajo xử lý phân trang tự động, nhưng hãy cài đặt per_page tối đa (100) để giảm thiểu lần gọi API.
Giới Hạn Tốc Độ
| Gói | Giới Hạn |
|---|---|
| Free | 2 yêu cầu/giây |
| Essential | 15 yêu cầu/giây |
| Professional | 50 yêu cầu/giây |
| Enterprise | Tùy chỉnh |
Khắc Phục Sự Cố
| Sự Cố | Nguyên Nhân | Giải Pháp |
|---|---|---|
| 401 Unauthorized | Token hết hạn | Lấy access token mới |
| 403 Forbidden | Quyền không đủ | Thêm quyền vào M2M Application |
| Người dùng thiếu | Filter không đúng | Kiểm tra tham số q trong query |
| Logs không nhận | Log stream chưa cấu hình | Thiết lập Auth0 Log Stream sang webhook Tajo |