Bedrud Belgeler

Tüm kimlik doğrulama uç noktaları /api/auth/ altındadır.

Genel Bakış

Bedrud birden fazla kimlik doğrulama yöntemini destekler:

YöntemUç NoktaAçıklama
E-posta/ParolaPOST /api/auth/loginGeleneksel giriş
KayıtPOST /api/auth/registerHesap oluşturma
MisafirPOST /api/auth/guest-loginGeçici erişim
OAuthGET /api/auth/:provider/loginSosyal hesap ile giriş
PasskeyPOST /api/auth/passkey/*FIDO2/WebAuthn
Token YenilemePOST /api/auth/refreshErişim token’ını yenileme

Token Formatı

Başarılı bir kimlik doğrulama, bir çift JWT token döndürür:

{
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "eyJhbGciOiJIUzI1NiIs..."
}
  • Access Token - Kısa ömürlü, Authorization başlığında kullanılır
  • Refresh Token - Uzun ömürlü, yeni access token almak için kullanılır

Token Kullanımı

Tüm kimlik doğrulamalı isteklerde access token’ı ekleyin:

Authorization: Bearer <accessToken>

Uç Noktalar

Kayıt Ol

Yeni bir kullanıcı hesabı oluşturun.

POST /api/auth/register

İstek Gövdesi:

{
  "email": "user@example.com",
  "password": "securepassword",
  "name": "John Doe"
}

Yanıt (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "email": "user@example.com",
    "name": "John Doe",
    "role": "user"
  }
}

Giriş Yap

E-posta ve parola ile kimlik doğrulayın.

POST /api/auth/login

İstek Gövdesi:

{
  "email": "user@example.com",
  "password": "securepassword"
}

Yanıt (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "email": "user@example.com",
    "name": "John Doe",
    "role": "user"
  }
}

Misafir Girişi

Hesap oluşturmadan misafir olarak katılın. Misafir kullanıcıların sınırlı izinleri vardır.

POST /api/auth/guest-login

İstek Gövdesi:

{
  "name": "Guest User"
}

Yanıt (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "name": "Guest User",
    "role": "guest"
  }
}

Mevcut Kullanıcıyı Getir

Kimliği doğrulanmış kullanıcının profilini alın.

GET /api/auth/me

Başlıklar: Authorization: Bearer <accessToken>

Yanıt (200):

{
  "id": "uuid",
  "email": "user@example.com",
  "name": "John Doe",
  "avatar": "https://...",
  "role": "user",
  "provider": "email"
}

Token Yenile

Refresh token’ı yeni bir access token ile değiştirin.

POST /api/auth/refresh

İstek Gövdesi:

{
  "refreshToken": "eyJ..."
}

Yanıt (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ..."
}

Çıkış Yap

Mevcut refresh token’ı geçersiz kılın.

POST /api/auth/logout

Başlıklar: Authorization: Bearer <accessToken>

İstek Gövdesi:

{
  "refreshToken": "eyJ..."
}

Yanıt (200):

{
  "message": "logged out"
}

OAuth Girişi

Bir sosyal sağlayıcı ile OAuth akışını başlatın.

GET /api/auth/:provider/login

Desteklenen Sağlayıcılar:

SağlayıcıYol
Google/api/auth/google/login
GitHub/api/auth/github/login
Twitter/api/auth/twitter/login

Sunucu, kullanıcıyı sağlayıcının yetkilendirme sayfasına yönlendirir. Onay sonrasında sağlayıcı, callback URL’sine geri yönlendirir ve sunucu JWT token’larını döndürür.


Hata Yanıtları

Tüm kimlik doğrulama uç noktaları hataları bu formatta döndürür:

{
  "error": "invalid credentials"
}
DurumAnlamı
400Hatalı istek (eksik alanlar, doğrulama hatası)
401Geçersiz kimlik bilgileri veya süresi dolmuş token
409E-posta adresi zaten kayıtlı
500İç sunucu hatası

Ayrıca bakınız