Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / API referansı

Referans

Kimlik doğrulama ve başlıklar

Cluster ERP API istemcilerinin gönderdiği ve aldığı kimlik bilgileri, çerezler, kiracı seçimi, dil, kullanımdan kaldırma ve denetim başlıkları, mekanizma düzeyinde.

Bu sayfa Cluster ERP API'sinin okuduğu ve yazdığı kimlik bilgilerini ve HTTP başlıklarını, bir istemci geliştiricisinin API'yi çağırmak için ihtiyaç duyduğu düzeyde listeler. Kiracı kullanıcılarını, operatör konsolunu ve belirteçle çalışan tedarikçi portalı ile kayıt yollarını kapsar. Oturum ve belirteç tasarımı Kimlik doğrulama ve oturumlar sayfasında anlatılır; bu sayfa onu tekrarlamaz ve iç denetimleri sonuçlarının ötesinde anlatmaz.

Kimlik bilgileri

Kimlik bilgisi Taşındığı yer Kullanan Kaynak
Erişim belirteci Authorization: Bearer başlığı masaüstü istemci ve betikler; get_current_user veya require_permission bağımlılığına dayanan her yol src/cluster_erp/modules/auth/session_cookies.py:63-75
Erişim çerezi HttpOnly cluster_access çerezi, TLS üzerinde __Host- önekiyle çerez taşımalı oturum açmadan sonra web istemcisi src/cluster_erp/modules/auth/session_cookies.py:35, src/cluster_erp/modules/auth/session_cookies.py:51-55
Yenileme belirteci POST /api/v1/auth/refresh JSON gövdesi masaüstü istemci ve betikler src/cluster_erp/modules/auth/login/schemas.py:41-44
Yenileme çerezi HttpOnly cluster_refresh çerezi, yol /api/v1/auth web istemcisi src/cluster_erp/modules/auth/session_cookies.py:36-39, src/cluster_erp/modules/auth/session_cookies.py:145-153
Operatör belirteci /api/v1/vendor/* üzerinde Authorization: Bearer başlığı operatör konsolu; kiracı belirteçlerinden ayrı src/cluster_erp/server/routes/vendor.py:84-95
Portal belirteci {token} yol bölümü /api/v1/procurement/portal/rfqs/ altındaki tedarikçi portalı yolları src/cluster_erp/modules/procurement/purchase_rfqs/portal_routes.py:34-64
Kayıt belirteci signup_token veya verify_token JSON gövde alanı kayıt durumu, yeniden gönderme, iptal ve doğrulama src/cluster_erp/server/routes/signup.py:102-112

Biçimi doğru bir Bearer başlığı erişim çerezinin önüne geçer; null veya undefined değerli bir Bearer yok sayılır (src/cluster_erp/modules/auth/session_cookies.py:63-75).

Oturum açma ve belirteç yenileme

Sıra, kiracı kullanıcısı akışını mekanizma düzeyinde gösterir. Web istemcisi çerez taşımasını ister; masaüstü istemci ve betikler gövde taşımasını kullanır.

sequenceDiagram
 participant Client
 participant Login as POST /auth/login
 participant Refresh as POST /auth/refresh
 participant Route as Korunan yol
 Client->>Login: LoginRequest, isteğe bağlı X-Token-Transport cookie
 Login-->>Client: belirteçli LoginResponse ya da boş belirteçler ve Set-Cookie
 Client->>Route: Bearer başlığı veya erişim çerezi
 Route-->>Client: 200 veya 401 AUTH_TOKEN_EXPIRED
 Client->>Refresh: gövdede yenileme belirteci veya yenileme çerezi
 Refresh-->>Client: yeni erişim ve yenileme belirteci çifti
 Client->>Route: yeni erişim belirteciyle yeniden dene
Adım Davranış Kaynak
Oturum açma isteği LoginRequest, username, password ve remember_me taşır. src/cluster_erp/modules/auth/login/schemas.py:8-13
Başarısız oturum açma AUTH_INVALID_CREDENTIALS ile 401 yanıtlar. Tekrarlanan başarısızlıklar hesabı bir süre kilitler; istemci başına deneme bütçesi AUTH_TOO_MANY_ATTEMPTS ile 429 yanıtlar. src/cluster_erp/modules/auth/login/routes.py:71-97, src/cluster_erp/modules/auth/login/routes.py:136-180
Oturum açma yanıtı LoginResponse, access_token, refresh_token, token_type, user ve permissions taşır. Çerez taşımasında iki belirteç alanı boş dizgedir ve belirteçler çerez olarak yazılır. src/cluster_erp/modules/auth/login/schemas.py:16-21, src/cluster_erp/modules/auth/login/routes.py:214-257
Oturum süresi remember_me olmadan çerez taşımalı bir oturum, oturum çerezleri ve jwt_session_hours uzunluğunda bir oturum sonu alır. src/cluster_erp/modules/auth/login/routes.py:219-226, src/cluster_erp/modules/auth/session_cookies.py:124-153
Yenileme Sunulan yenileme belirteci harcanır ve yeni bir çift verilir; yanıt isteğin taşıma biçimini izler. src/cluster_erp/modules/auth/login/routes.py:260-370
Oturum kapatma POST /api/v1/auth/logout sunulan belirteçleri iptal eder, last_logout_at damgasını basar, çerezleri temizler ve 204 yanıtlar. src/cluster_erp/modules/auth/login/routes.py:373-432
Geçerli kullanıcı GET /api/v1/auth/me, user ve permissions ile MeResponse döndürür. src/cluster_erp/modules/auth/login/routes.py:434-459

Belirteç ömürleri jwt_access_expire_minutes, jwt_refresh_expire_days ve jwt_session_hours ayarlarından gelir (src/cluster_erp/config/settings.py:307-312). Değerler Ayarlar başvurusu sayfasında anlatılır.

İstek başlıkları

Başlık Amaç Ne zaman gerekir Kaynak
Authorization Bearer erişim belirteci veya /api/v1/vendor/* üzerinde operatör belirteci erişim çerezi gönderilmediğinde her korunan yol src/cluster_erp/modules/auth/session_cookies.py:63-75
Cookie web istemcisinin erişim ve yenileme çerezleri çerez taşıması src/cluster_erp/modules/auth/session_cookies.py:63-84
X-Token-Transport cookie değeri, oturum açmanın belirteç döndürmek yerine çerez yazmasını ister tarayıcıdan oturum açma src/cluster_erp/modules/auth/session_cookies.py:31-43
X-Requested-With yöntemi GET, HEAD veya OPTIONS olmayan her çerezle doğrulanmış istekte CSRF_VALUE değerine eşit olmalıdır; aksi halde 403 AUTH_CSRF_HEADER_MISSING çerez taşımalı yazmalar ve yenileme src/cluster_erp/modules/auth/session_cookies.py:33-34, src/cluster_erp/modules/auth/session_cookies.py:112-121
X-Tenant-Domain oturum açma posta alan adı; imzalı bir belirteç kiracı talebi taşımadığında isteği kiracısına yönlendirmek için kullanılır çoklu kiracı kipi, oturum açmadan önce src/cluster_erp/server/dependencies.py:138-148
Accept-Language ilk iki harf etiket metinlerinin dilini seçer; varsayılan en isteğe bağlı; get_language bağımlılığının 49 kullanımı okur src/cluster_erp/server/dependencies.py:247-249
X-Deact-Reason, X-Deact-Note bir DELETE isteğinin kullanımdan kaldırdığı kayda basılan, URL kodlu neden ve not kullanımdan kaldırma isteklerinde isteğe bağlı src/cluster_erp/server/dependencies.py:63-72
X-Session-Id, X-Correlation-Id denetim için veritabanı oturum ayarlarına yazılır; bağıntı kimliği yoksa üretilir isteğe bağlı src/cluster_erp/server/dependencies.py:34-63
If-None-Match GET /api/v1/_meta yeniden doğrulaması; eşleşme 304 yanıtlar isteğe bağlı src/cluster_erp/server/app.py:1553-1555
Accept-Encoding gzip, önceden sıkıştırılmış meta veri gövdesini seçer isteğe bağlı src/cluster_erp/server/app.py:1544-1552
Content-Length max_request_body_bytes ile karşılaştırılır; daha büyük değer 413 yanıtlar gövdeli her istek src/cluster_erp/server/app.py:1396-1411
Origin çapraz köken erişimi yalnız yapılandırılmış konsol kökenlerine ve yalnız /api/v1/vendor/fleet üzerinde verilir tarayıcıdaki operatör konsolu src/cluster_erp/server/app.py:1362-1388

Yanıt başlıkları

Başlık Ne zaman Kaynak
Set-Cookie çerez taşımalı oturum açma ve yenileme; oturum kapatmada silme src/cluster_erp/modules/auth/session_cookies.py:124-158
ETag, Cache-Control: private, no-cache, Vary GET /api/v1/_meta src/cluster_erp/server/app.py:1546-1556
Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy her yanıt src/cluster_erp/server/app.py:1412-1421
Strict-Transport-Security HTTPS isteklerine verilen yanıtlar src/cluster_erp/server/app.py:1426-1429
Retry-After: 2 durumu 503 olan işlenmemiş hata yanıtı src/cluster_erp/server/error_handler.py:309
Access-Control-Allow-Origin ve ilgili başlıklar yapılandırılmış bir konsol kökeni için /api/v1/vendor/fleet src/cluster_erp/server/app.py:1365-1388

Kiracı seçimi

multi_tenant kapalıyken her istek süreç veritabanını kullanır (src/cluster_erp/server/dependencies.py:117-118). Açıkken get_db_session kiracıyı önce sunulan belirtecin imzalı kiracı talebinden, sonra X-Tenant-Domain başlığından çözer. Etkin bir kiracıya çözülemeyen istek AUTH_TENANT_UNRESOLVED ile tek bir genel 401 alır (src/cluster_erp/server/dependencies.py:104-157). Model Çoklu kiracılık sayfasında anlatılır.

Yetki denetimleri

require_permission(*codes), kullanıcıyı çözen ve listelenen her kodu isteyen bir bağımlılıktır; eksik kod AUTH_PERMISSION_DENIED ve details.required_permission ile 403 yanıtlar (src/cluster_erp/modules/auth/guards.py:205-240, src/cluster_erp/core/errors.py:388-394). Her kod için o koda yapılandırılmış öznitelik ilkelerini de değerlendirir. abac_strict_permission_codes ayarında listelenen kodlar ilke yoksa reddedilir (src/cluster_erp/modules/auth/guards.py:216-235, src/cluster_erp/config/settings.py:341). Bazı yollar oturum açmış kullanıcıyı bunun yerine işleyicinin içinde get_current_user ile denetler; modül sayfaları her yolun korumasını adlandırır. Roller ve ilkeler Roller ve yetkiler ve ABAC ilkeleri sayfalarında anlatılır.

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
cookie transport TRANSPORT_COOKIE Belirteçlerin yanıt gövdesinde değil, yalnızca HttpOnly çerezlerle taşındığı web oturum açma kipi. çerez taşıması src/cluster_erp/modules/auth/session_cookies.py:31-32
operator token require_operator Bir operatör konsolu hesabının Bearer belirteci; yalnız /api/v1/vendor yolları okur. operatör belirteci src/cluster_erp/server/routes/vendor.py:84-95
portal token token Tedarikçi portalı yollarında bir tedarikçinin teklif talebi davetini tanımlayan yol bölümü. portal belirteci src/cluster_erp/modules/procurement/purchase_rfqs/portal_routes.py:34

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13