POST/api/auth/login
Bir kullanıcının girişini yapar ve bir oturum JWT'si ile bir yenileme jetonu verir. Geçerli bir gösterge paneli erişim jetonu almanın tek yolu budur — ayrı bir geliştirici API anahtarı sistemi yoktur.
`POST /api/auth/login`, kullanıcının e-posta ve parola ile giriş yapmasını ve geçerli bir oturum JWT’si ile yenileme jetonu almasını sağlar. Geliştiriciler için ayrı bir API anahtarı sistemi yoktur; gösterge paneline erişim için doğrulanmış yol bu oturum akışıdır. İstek önceden kimlik doğrulama gerektirmez. Gövde, belgelenen kullanıcı adı veya e-posta alanını ve parolayı içermelidir. Başarılı yanıtta oturum tokeni ile refresh token döner. Oturum JWT’si 12 saat, yenileme jetonu yedi gün geçerlidir. Tokenler URL içinde taşınmamalı, tarayıcı loglarına veya analitik olaylara yazılmamalıdır. Uç nokta, e-posta veya kullanıcı adına göre artan brute-force kısıtlaması uygular. Çok sayıda yanlış deneme daha uzun bekleme veya geçici engelleme doğurabilir. İstemci, başarısız girişleri hızlı döngüyle tekrarlamamalıdır. Hata mesajı, hesabın varlığı hakkında gereksiz bilgi vermemelidir. TOTP iki faktörlü kimlik doğrulama etkinse giriş akışı ek doğrulama adımı isteyebilir. SSO kullanan kiracılarda SAML veya OIDC akışı tercih edilebilir; bu durumda `login` uç noktası SSO callback ve exchange işlemlerinin yerine geçmez. Kullanıcı arayüzü hangi akışın geçerli olduğunu açık göstermelidir. Başarılı girişten sonra istemci JWT’yi korumalı bir oturum bağlamında kullanır. Refresh token yalnızca yenileme için kullanılmalı ve normal API çağrılarına gönderilmemelidir. Çıkışta yerel tokenler temizlenmelidir. Parola, TOTP kodu ve tokenler destek ekran görüntülerinde paylaşılmamalıdır. Gerçekçi örnek: kullanıcı e-posta ve parolasını gönderir; sunucu doğrular, brute-force durumunu kontrol eder ve gerekiyorsa 2FA adımını başlatır. Başarı halinde panel açılır. Yanlış parola durumunda yeni tenant veya hesap oluşturulmaz; kullanıcı kontrollü biçimde tekrar deneyebilir ya da parola sıfırlama akışını kullanabilir. İstemci tarafında oturum süresi dolduğunda kullanıcıya açık bir yeniden giriş akışı sunulmalıdır. Süresi geçmiş JWT ile ardışık istek göndermek yerine refresh token bir kez denenir; yenileme başarısızsa tokenler temizlenir. Bu davranış, görünürde giriş yapılmış fakat tüm API çağrıları reddedilen kararsız oturumları önler. Giriş formu güvenli HTTPS üzerinden çalışmalıdır. Tarayıcı otomatik doldurma kullanabilir, ancak parola düz metin olarak başka alanlara kopyalanmamalıdır. Başarısız denemelerde tüm token alanları temiz tutulmalı, başarılı yanıt gelmeden kullanıcı oturum açmış kabul edilmemelidir. Kullanıcı oturumu başka bir kiracıya geçiş yaptığında backend her istekte aktif kiracı yetkisini yeniden kontrol eder. Token mevcut olsa bile erişim otomatik olarak tüm kiracılara açılmaz. İstemci, yetki hatasını gizlemek yerine kullanıcıya doğru kiracı bağlamını göstermelidir.
Kimlik Doğrulama ve Güvenlik
Kimlik doğrulama gerekmez
E-posta/kullanıcı adı başına aşamalı brute-force yavaşlatması (authGuard) -- 5 dakika içinde 10 başarısız deneme artan gecikmeye, 30'dan itibaren kilitlemeye yol açar.
İdempotent: Hayır
Parametreler
identifier(body, string, zorunlu)— E-posta adresi veya kullanıcı adıpassword(body, string, zorunlu)— ParolaÖrnek İstek
{"identifier":"user@example.com","password":"Şifreniz"}Örnek Yanıt
{"ok":true,"token":"<JWT, 12 saat geçerli>","refreshToken":"<Yenileme jetonu, 7 gün geçerli, tek kullanımlık>","user":{"id":"...","tenant_id":"...","email":"user@example.com","role":"EMPLOYEE","roles":[],"permissions":[],"isMasterAdmin":false}}Hata Kodları
401 INVALID_CREDENTIALS — E-posta/kullanıcı adı veya parola yanlış.429 RATE_LIMIT_EXCEEDED — Bu tanımlayıcı veya bu IP için çok fazla başarısız deneme.Canlı Test Kanıtı
Başarı (200, gerçek JWT + yenileme jetonu) ve negatif durum (yanlış parolada 401) izole bir test yığınına karşı canlı olarak doğrulandı.