Auth yapılandırmasını güncelle
Özel bir entegrasyon için kimlik doğrulamayı yapılandırın
Bir entegrasyon için kimlik doğrulama yöntemini yapılandırır. Kullanıcıların harici servise nasıl bağlanacağını belirler — API key, OAuth, service account veya kimlik doğrulama olmadan.
Başlamadan önce
- Changing
authType:authTypedeğiştirmek bu entegrasyona ait tüm mevcut kullanıcı bağlantılarını siler. Kullanıcıların yeniden bağlanması gerekir.
Base URL
https://api.ajan.io/integrations/v1/{integrationId}/authDedicated deployments Tüm isteklerde
api.ajan.com'u/api/publicile değiştirin.
Required Scopes
Bu endpoint INTEGRATION_API kapsamı gerektirir.
Parameters
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
integrationId | string | Yes | Entegrasyonun UUID'si |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
authType | string | Yes | Kimlik doğrulama yöntemi (aşağıdaki Auth Types) |
authFields | array | No | Bağlanırken kullanıcıların doldurduğu alanlar (Auth Field Schema) |
authTestCode | string | No | Kimlik bilgilerini doğrulayan JavaScript kodu (maks. 1.000 karakter) |
oauthClient | object | No | OAuth yapılandırması (yalnızca OAUTH / OAUTH_DCR için) |
Auth Types
| Type | Description |
|---|---|
NONE | Kimlik doğrulama gerekmez |
API_KEY | Kullanıcılar özel auth alanlarıyla kimlik bilgisi sağlar |
OAUTH | Yetkilendirme kodu ile OAuth 2.0 akışı |
OAUTH_DCR | Dynamic Client Registration ile OAuth 2.0 |
Auth Field Schema
Her auth alanı, kullanıcıların entegrasyona bağlanırken doldurduğu bir kimlik bilgisi girişini tanımlar.
| Property | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | Alan için benzersiz tanımlayıcı (maks. 100 karakter) |
label | string | Yes | Görünen etiket (maks. 100 karakter) |
type | string | Yes | Giriş türü (aşağıdaki Field Types) |
description | string | No | Yardım metni (maks. 500 karakter, varsayılan: "") |
placeholder | string | No | Placeholder metni (maks. 200 karakter) |
required | boolean | No | Alanın zorunlu olup olmadığı (varsayılan: false) |
slugentegrasyon içinde benzersiz olmalıdır. Alanid'si otomatik üretilir — isteğe dahil etmeyin.
Field Types
| Type | Description |
|---|---|
TEXT | Tek satırlı metin girişi |
MULTI_LINE_TEXT | Çok satırlı metin girişi |
PASSWORD | Maskeli parola girişi |
NUMBER | Sayısal giriş |
EMBEDDING_MODEL | Embedding model seçici |
OAuth Client Schema
Yalnızca authType OAUTH veya OAUTH_DCR olduğunda geçerlidir.
| Property | Type | Required | Description |
|---|---|---|---|
scopes | string | No | Boşlukla ayrılmış OAuth scope'ları (maks. 2.000 karakter) |
authUrl | string | No | Authorization endpoint URL |
tokenUrl | string | No | Token endpoint URL |
clientId | string | No | OAuth client ID (maks. 500 karakter) |
clientSecret | string | No | OAuth client secret (maks. 500 karakter, yalnızca yazma) |
label | string | No | Bağlan düğmesi için görünen etiket (maks. 100 karakter) |
authorizationCode | string | No | Özel authorization kodu (maks. 1.000 karakter) |
accessTokenCode | string | No | Özel access token kodu (maks. 1.000 karakter) |
refreshTokenCode | string | No | Özel refresh token kodu (maks. 1.000 karakter) |
OAuth kimlik bilgileri (
clientId,clientSecret,authUrl,tokenUrl) yalnızca yazılabilir — API yanıtlarında asla döndürülmez.
Example: API Key Authentication
const axios = require("axios");
async function configureAuth(integrationId) {
const response = await axios.patch(
`https://api.ajan.io/integrations/v1/${integrationId}/auth`,
{
authType: "API_KEY",
authFields: [
{
slug: "api_key",
label: "API Key",
type: "PASSWORD",
description: "Your API key from the service dashboard",
placeholder: "sk-...",
required: true
},
{
slug: "base_url",
label: "Base URL",
type: "TEXT",
description: "API base URL",
placeholder: "https://api.example.com",
required: true
}
],
authTestCode: `
const response = await ld.request({
method: "GET",
url: data.auth.base_url + "/me",
headers: { Authorization: "Bearer " + data.auth.api_key }
});
if (response.status < 200 || response.status >= 300) {
throw new Error("Invalid credentials");
}
return { success: true };
`
},
{
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
}
);
console.log("Auth configured:", response.data.integration);
}
configureAuth("550e8400-e29b-41d4-a716-446655440000");Response Format
Success Response (200 OK)
{
integration: {
id: string;
authType: string;
authTestCode: string | null;
authFields: Array<{
slug: string;
label: string;
type: string;
description: string;
placeholder: string | null;
required: boolean;
}>;
oauthClient: {
scopes: string | null;
label: string | null;
authorizationCode: string;
accessTokenCode: string;
refreshTokenCode: string;
} | null;
};
}Behavior
- Auth alanları her çağrıda tamamen değiştirilir — dizi silinir ve yeniden oluşturulur.
authTypedeğiştirmek tüm mevcut kullanıcı bağlantılarını ve önceki OAuth client yapılandırmasını siler.authType'ıNONE,API_KEYveyaSERVICE_ACCOUNTyapmak mevcut OAuth client'ı siler.- OAuth kimlik bilgileri (
clientId,clientSecret) saklanmadan önce şifrelenir.
Error Handling
| Status Code | Description |
|---|---|
| 400 | Geçersiz istek gövdesi veya entegrasyon ID |
| 401 | Geçersiz veya eksik API anahtarı |
| 403 | Bu entegrasyona erişim yok |
| 404 | Entegrasyon bulunamadı |
| 429 | Rate limit aşıldı |
| 500 | İç sunucu hatası |
ajan, API anahtarınızı korumak ve uygulamalarınızın güvenliğini sağlamak için tarayıcı kaynaklı istekleri bilinçli olarak engeller. Daha fazla bilgi için API Key Best Practices kılavuzuna bakın.