---
title: "Auth0 کنیکٹر"
description: "Tajo کے ذریعے Brevo کے ساتھ صارف کی توثیق کے ڈیٹا، شناختی پروفائلز، اور رسائی کے ایونٹس کو سنک کرنے کے لیے مکمل Auth0 انٹیگریشن گائیڈ۔"
url: https://tajo.io/ur/docs/connectors/custom/auth0/
markdown: https://tajo.io/ur/docs/connectors/custom/auth0.md
lang: ur-PK
robots: noindex
---

ابتدائی رسائی کی درخواست کریں

اپنا پہلا نام اور دفتری ای میل پتہ درج کریں۔ ہم Tajo تک رسائی کی درخواست کی تصدیق کے لیے ایک لنک ای میل کریں گے۔

# Auth0 کنیکٹر

کنیکٹر کی حیثیت: منصوبہ بند ابھی تیار نہیں ہوا۔ Tajo آج یہ کنیکٹر نہیں چلاتا۔

| ماخذ فیلڈ | منزل فیلڈ | نمونہ قدر |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

توثیق شدہ صارف پروفائلز کو مارکیٹنگ رابطوں کے طور پر سنک کرنے، توثیقی ایونٹس کی بنیاد پر آٹومیشنز کو متحرک کرنے، اور شناخت اور رسائی کے انتظام کی بصیرتوں کے ساتھ اپنے کسٹمر ڈیٹا کو بہتر بنانے کے لیے Tajo کے ذریعے Auth0 کو Brevo سے منسلک کریں۔

## جائزہ

| خاصیت | قدر |
| --- | --- |
| **پلیٹ فارم** | Auth0 (Okta کی جانب سے) |
| **زمرہ** | شناخت اور رسائی (حسب ضرورت) |
| **سیٹ اپ کی پیچیدگی** | معتدل |
| **آفیشل انٹیگریشن** | نہیں |
| **سنک شدہ ڈیٹا** | صارفین، ایونٹس، رولز، شناختیں |
| **توثیقی طریقہ** | Machine-to-Machine OAuth 2.0 |

## خصوصیات

- **صارف پروفائل سنک** - Auth0 صارف پروفائلز کو Brevo رابطوں سے سنک کریں
- **توثیقی ایونٹس** - لاگ ان، سائن اپ، اور پاس ورڈ ری سیٹ پر آٹومیشنز کو متحرک کریں
- **رول پر مبنی سیگمنٹیشن** - Auth0 رولز اور اجازتوں کی بنیاد پر رابطوں کو سیگمنٹ کریں
- **سوشل شناختی ڈیٹا** - سوشل لاگ ان پروفائل معلومات سے رابطوں کو بہتر بنائیں
- **لاگ ان سرگرمی ٹریکنگ** - آخری لاگ ان، لاگ ان کاؤنٹ، اور ڈیوائس ڈیٹا ٹریک کریں
- **ملٹی-ٹینینٹ سپورٹ** - متعدد Auth0 ٹینینٹس میں صارفین کو سنک کریں

## ضروریات

شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:

1. API رسائی کے ساتھ Auth0 اکاؤنٹ
2. Auth0 میں رجسٹرڈ Machine-to-Machine ایپلی کیشن
3. M2M ایپلی کیشن کو دی گئی Management API اجازتیں
4. API رسائی کے ساتھ Brevo اکاؤنٹ
5. کنیکٹر اجازتوں کے ساتھ Tajo اکاؤنٹ

## توثیق

### Machine-to-Machine OAuth 2.0

```bash
# Auth0 ڈیش بورڈ میں M2M ایپلی کیشن بنائیں
export AUTH0_DOMAIN=your-tenant.auth0.com
export AUTH0_CLIENT_ID=your_client_id
export AUTH0_CLIENT_SECRET=your_client_secret
export AUTH0_AUDIENCE=https://your-tenant.auth0.com/api/v2/
```

```javascript
// Management API رسائی ٹوکن حاصل کریں
const tokenResponse = await fetch(
  `https://${process.env.AUTH0_DOMAIN}/oauth/token`,
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      client_id: process.env.AUTH0_CLIENT_ID,
      client_secret: process.env.AUTH0_CLIENT_SECRET,
      audience: process.env.AUTH0_AUDIENCE,
      grant_type: 'client_credentials'
    })
  }
);

const { access_token } = await tokenResponse.json();
// ٹوکن ڈیفالٹ کے طور پر 24 گھنٹے کے لیے درست ہے
```

API اجازتیں

اپنی M2M ایپلی کیشن کو صرف ضروری اسکوپس دیں: `read:users`، `read:user_idp_tokens`، `read:roles`، اور `read:logs`۔ جب تک ضروری نہ ہو، لکھنے کی اجازتیں دینے سے گریز کریں۔

## کنفیگریشن

### بنیادی سیٹ اپ

```yaml
connectors:
  auth0:
    enabled: true
    domain: "${AUTH0_DOMAIN}"
    client_id: "${AUTH0_CLIENT_ID}"
    client_secret: "${AUTH0_CLIENT_SECRET}"
    audience: "https://${AUTH0_DOMAIN}/api/v2/"

    sync:
      users: true
      events: true
      roles: true
      schedule: "0 */4 * * *"  # Every 4 hours

    lists:
      all_users: 20
      verified_users: 21
      social_login: 22
```

### فیلڈ میپنگ

```yaml
field_mapping:
  email: email
  given_name: FIRSTNAME
  family_name: LASTNAME
  nickname: NICKNAME
  picture: AVATAR_URL
  email_verified: EMAIL_VERIFIED
  logins_count: LOGIN_COUNT
  last_login: LAST_LOGIN_DATE
  created_at: SIGNUP_DATE
  user_metadata.phone: SMS
  user_metadata.company: COMPANY
  app_metadata.plan: SUBSCRIPTION_PLAN
  app_metadata.role: USER_ROLE
```

## API اینڈ پوائنٹس

| اینڈ پوائنٹ | طریقہ | تفصیل |
| --- | --- | --- |
| `https://{domain}/api/v2/users` | GET | صارفین کی فہرست یا تلاش |
| `https://{domain}/api/v2/users/{id}` | GET | ایک صارف حاصل کریں |
| `https://{domain}/api/v2/users/{id}` | PATCH | صارف میٹا ڈیٹا اپ ڈیٹ کریں |
| `https://{domain}/api/v2/users/{id}/roles` | GET | صارف کے رولز حاصل کریں |
| `https://{domain}/api/v2/roles` | GET | تمام رولز کی فہرست |
| `https://{domain}/api/v2/logs` | GET | لاگ ایونٹس حاصل کریں |
| `https://{domain}/api/v2/stats/active-users` | GET | فعال صارفین کی تعداد حاصل کریں |
| `https://{domain}/api/v2/stats/daily` | GET | روزانہ کے اعدادوشمار حاصل کریں |
| `https://{domain}/oauth/token` | POST | رسائی ٹوکن حاصل کریں |

## کوڈ مثالیں

### کنیکٹر کو شروع کریں

```javascript
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
});
```

### صارفین کو Brevo سے سنک کریں

```javascript
// Auth0 صارفین کے ذریعے پیجینیٹ کریں
let page = 0;
const perPage = 50;
let hasMore = true;

while (hasMore) {
  const response = await fetch(
    `https://${domain}/api/v2/users?` +
      new URLSearchParams({
        page: page.toString(),
        per_page: perPage.toString(),
        include_totals: 'true',
        search_engine: 'v3',
        q: 'email_verified:true'
      }),
    {
      headers: { 'Authorization': `Bearer ${accessToken}` }
    }
  );

  const { users, total } = await response.json();

  for (const user of users) {
    await tajo.contacts.sync({
      email: user.email,
      attributes: {
        FIRSTNAME: user.given_name,
        LASTNAME: user.family_name,
        LOGIN_COUNT: user.logins_count,
        LAST_LOGIN_DATE: user.last_login,
        SIGNUP_DATE: user.created_at,
        EMAIL_VERIFIED: user.email_verified
      },
      listIds: [20]
    });
  }

  page++;
  hasMore = (page * perPage) < total;
}
```

### Log Streams کے ذریعے توثیقی ایونٹس ٹریک کریں

```javascript
// Auth0 Log Stream webhook سیٹ اپ کریں
// Auth0 ڈیش بورڈ > Monitoring > Streams میں کنفیگر کریں

app.post('/webhooks/auth0', async (req, res) => {
  // authorization ہیڈر کی تصدیق کریں
  const authHeader = req.headers.authorization;
  if (authHeader !== `Bearer ${process.env.AUTH0_WEBHOOK_TOKEN}`) {
    return res.status(401).send('Unauthorized');
  }

  const logs = req.body;

  for (const log of logs) {
    switch (log.data.type) {
      case 's':   // کامیاب لاگ ان
        await tajo.events.track({
          email: log.data.details.email,
          event: 'user_login',
          properties: {
            ip: log.data.ip,
            user_agent: log.data.user_agent,
            connection: log.data.connection
          }
        });
        break;
      case 'ss':  // کامیاب سائن اپ
        await tajo.contacts.sync({
          email: log.data.details.email,
          attributes: { SIGNUP_DATE: log.data.date },
          listIds: [20]
        });
        break;
      case 'sp':  // کامیاب پاس ورڈ تبدیلی
        await tajo.events.track({
          email: log.data.details.email,
          event: 'password_changed'
        });
        break;
    }
  }

  res.status(200).send('OK');
});
```

### رول پر مبنی سیگمنٹیشن

```javascript
// سیگمنٹیشن کے لیے صارف کے رولز سنک کریں
const rolesResponse = await fetch(
  `https://${domain}/api/v2/users/${userId}/roles`,
  {
    headers: { 'Authorization': `Bearer ${accessToken}` }
  }
);

const roles = await rolesResponse.json();
const roleNames = roles.map(r => r.name).join(', ');

await tajo.contacts.update(userEmail, {
  attributes: {
    USER_ROLE: roleNames,
    IS_ADMIN: roles.some(r => r.name === 'admin')
  }
});
```

## ریٹ کی حدود

| اینڈ پوائنٹ کا زمرہ | حد | نوٹس |
| --- | --- | --- |
| Management API | 50 req/sec (Free) | فی ٹینینٹ |
| Management API | 100 req/sec (Paid) | فی ٹینینٹ |
| Authentication API | متغیر | پلان پر منحصر |
| Log Streams | ریئل ٹائم | ڈیلیوری پر کوئی ریٹ کی حد نہیں |
| پیجینیشن | فی صفحہ زیادہ سے زیادہ 50 آئٹمز | `page` اور `per_page` پیرامز استعمال کریں |

پیجینیشن ضروری

Auth0 Management API فی صفحہ زیادہ سے زیادہ 50 نتائج واپس کرتا ہے۔ ہمیشہ `page` اور `per_page` پیرامز کا استعمال کرتے ہوئے پیجینیشن نافذ کریں۔ کل تعداد حاصل کرنے کے لیے `include_totals=true` شامل کریں۔

## مسائل کا سراغ

| مسئلہ | وجہ | حل |
| --- | --- | --- |
| 401 Unauthorized | ٹوکن کی میعاد ختم | نیا M2M ٹوکن درخواست کریں (24 گھنٹے کی میعاد) |
| 403 Forbidden | اسکوپس غائب | M2M ایپ کو ضروری اجازتیں دیں |
| خالی صارف فہرست | تلاش کی استفسار کی خرابی | v3 انجن کے لیے Lucene query syntax استعمال کریں |
| غائب میٹا ڈیٹا | میٹا ڈیٹا سیٹ نہیں | user\_metadata اور app\_metadata چیک کریں |
| ریٹ کی حد 429 | بہت زیادہ درخواستیں | ری ٹرائی ہیڈرز کے ساتھ بیک آف نافذ کریں |

### ڈیبگ موڈ

```yaml
connectors:
  auth0:
    debug: true
    log_level: verbose
    log_sync: true
```

## بہترین طریقے

1. **Log Streams استعمال کریں** - Logs API کی پولنگ کے بجائے ریئل ٹائم ایونٹ اسٹریمنگ
2. **پیجینیشن نافذ کریں** - بڑے ٹینینٹس کے لیے ہمیشہ صارف فہرست کی استفسار کو پیجینیٹ کریں
3. **M2M ٹوکنز کیشے کریں** - میعاد ختم ہونے کے قریب تک ٹوکنز کا دوبارہ استعمال کریں (ڈیفالٹ 24 گھنٹے کی عمر)
4. **search engine v3 استعمال کریں** - موثر صارف تلاش کے لیے Lucene query syntax استعمال کریں
5. **صرف تصدیق شدہ صارفین کو سنک کریں** - غیر تصدیق شدہ رابطوں سے بچنے کے لیے `email_verified:true` پر فلٹر کریں
6. **صارف میٹا ڈیٹا کا فائدہ اٹھائیں** - سنک کے لیے Auth0 user\_metadata میں حسب ضرورت خصوصیات محفوظ کریں

## سیکیورٹی

- **Machine-to-Machine OAuth** - سرور ٹو سرور توثیق کے لیے client credentials grant
- **محدود اجازتیں** - کم از کم ضروری Management API اسکوپس دیں
- **ٹوکن کی گردش** - M2M ٹوکنز ڈیفالٹ کے طور پر 24 گھنٹے بعد ختم ہو جاتے ہیں
- **Log Stream توثیق** - ویب ہک اینڈ پوائنٹس کے لیے bearer token verification استعمال کریں
- **ٹینینٹ تنہائی** - فی Auth0 ٹینینٹ علیحدہ کنفیگریشنز
- **خفیہ کردہ ٹرانسپورٹ** - تمام API مواصلات کے لیے TLS 1.2+

## متعلقہ وسائل

- [Segment کنیکٹر](https://tajo.io/ur/docs/connectors/custom/segment)
- [Zapier کنیکٹر](https://tajo.io/ur/docs/connectors/custom/zapier)
- [Customer Sync Skill](https://tajo.io/ur/docs/skills/data-sync/customer-sync)
- [Auth0 Management API Documentation](https://auth0.com/docs/api/management/v2)
