Auth Servisi

Planlanan

Kullanıcı kimlik doğrulama, JWT yönetimi, session kontrolü ve 2FA desteği.

Son güncelleme: 10 Şubat 2024
8 dk okuma
v1.0
Planlanan

Geliştirme Aşamasında

Auth servisi şu anda geliştirme aşamasındadır. Bu dokümantasyon, planlanan özellikleri ve mimari tasarımı açıklamaktadır.

Genel Bakış

Auth-service, EVDSOFT platformunun kimlik doğrulama servisdir. Kullanıcı kaydı, giriş, oturum yönetimi, şifre sıfırlama ve iki faktörlü kimlik doğrulama (2FA) işlemlerini yönetir.

Servis, platform-service'ten alınan yapılandırmayı kullanır. Her proje için farklı auth politikaları (JWT ayarları, session timeout, parola kuralları) uygulanabilir.

Planlananauth.services.evdsoft.com

Bu servis henüz yayında değildir. Geliştirme tamamlandığında bu adres üzerinden erişilebilir olacaktır.

Planlanan Özellikler

JWT tabanlı kimlik doğrulama
Refresh token desteği
Session yönetimi ve multi-device
E-posta doğrulama
Şifre sıfırlama akışı
İki faktörlü kimlik doğrulama (TOTP)
Proje bazlı kullanıcı üyelikleri
OAuth entegrasyonu (gelecekte)

API Endpoint'leri

Planlanan API endpoint'leri:

MethodPathAçıklama
POST/api/auth/registerYeni kullanıcı kaydı
POST/api/auth/loginKullanıcı girişi
POST/api/auth/logoutOturum sonlandırma
POST/api/auth/refreshToken yenileme
GET/api/auth/meMevcut kullanıcı bilgileri
POST/api/auth/forgot-passwordŞifre sıfırlama isteği
POST/api/auth/reset-passwordŞifre sıfırlama
POST/api/auth/verify-emailE-posta doğrulama
POST/api/auth/2fa/enable2FA etkinleştirme
POST/api/auth/2fa/verify2FA doğrulama

Login Endpoint Detayı

Kullanıcı giriş endpoint'i için istek ve yanıt formatları:

JSON
{
  "email": "user@example.com",
  "password": "securePassword123",
  "rememberMe": true
}

Veritabanı Şeması

Auth-service aşağıdaki veritabanı tablolarını kullanacaktır:

users
KolonTipNullVarsayılanAçıklama
id
UUIDNOT NULL-Benzersiz kullanıcı kimliği
email
VARCHAR(255)NOT NULL-E-posta adresi (benzersiz)
password_hash
VARCHAR(255)NOT NULL-Bcrypt hash'lenmiş şifre
name
VARCHAR(255)NULL-Kullanıcı adı
email_verified_at
TIMESTAMPNULL-E-posta doğrulama tarihi
created_at
TIMESTAMPNOT NULLNOW()Oluşturulma tarihi
updated_at
TIMESTAMPNOT NULLNOW()Güncellenme tarihi
sessions
KolonTipNullVarsayılanAçıklama
id
UUIDNOT NULL-Benzersiz session kimliği
user_id
UUIDNOT NULL-İlişkili kullanıcı ID
project_id
UUIDNOT NULL-İlişkili proje ID
token
VARCHAR(500)NOT NULL-JWT token
ip_address
VARCHAR(45)NULL-IP adresi
user_agent
TEXTNULL-Tarayıcı bilgisi
expires_at
TIMESTAMPNOT NULL-Token geçerlilik süresi
created_at
TIMESTAMPNOT NULLNOW()Oluşturulma tarihi
refresh_tokens
KolonTipNullVarsayılanAçıklama
id
UUIDNOT NULL-Benzersiz refresh token kimliği
user_id
UUIDNOT NULL-İlişkili kullanıcı ID
session_id
UUIDNOT NULL-İlişkili session ID
token
VARCHAR(500)NOT NULL-Refresh token
expires_at
TIMESTAMPNOT NULL-Geçerlilik süresi
revoked_at
TIMESTAMPNULL-İptal tarihi

Ek Tablolar

project_users, email_verifications, password_resets vetwo_factor_secrets tabloları da bulunacaktır.

Auth Akışı

Tipik kimlik doğrulama akışları:

Kayıt Akışı

1
ClientPOST /api/auth/registerAuth Service
2
Auth ServiceDomain bilgisi ile konfigürasyon alPlatform Service
3
Auth ServiceKullanıcı oluşturDatabase
4
Auth ServiceDoğrulama e-postası gönderMail Service
5
Auth ServiceBaşarılı yanıt döndürClient

Giriş Akışı

1
ClientPOST /api/auth/loginAuth Service
2
Auth ServiceKimlik bilgilerini doğrulaDatabase
3
Auth ServiceJWT ve refresh token oluştur
4
Auth ServiceSession kaydı oluşturDatabase
5
Auth ServiceToken'ları döndürClient