Tüm kimlik doğrulama uç noktaları /api/auth/ altındadır.
Genel Bakış
Bedrud birden fazla kimlik doğrulama yöntemini destekler:
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
| E-posta/Parola | POST /api/auth/login | Geleneksel giriş |
| Kayıt | POST /api/auth/register | Hesap oluşturma |
| Misafir | POST /api/auth/guest-login | Geçici erişim |
| OAuth | GET /api/auth/:provider/login | Sosyal hesap ile giriş |
| Passkey | POST /api/auth/passkey/* | FIDO2/WebAuthn |
| Token Yenileme | POST /api/auth/refresh | Eriş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ü,
Authorizationbaş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 |
|---|---|
/api/auth/google/login | |
| GitHub | /api/auth/github/login |
/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"
}| Durum | Anlamı |
|---|---|
| 400 | Hatalı istek (eksik alanlar, doğrulama hatası) |
| 401 | Geçersiz kimlik bilgileri veya süresi dolmuş token |
| 409 | E-posta adresi zaten kayıtlı |
| 500 | İç sunucu hatası |
Ayrıca bakınız
- Kimlik Doğrulama Akışı - JWT, OAuth ve passkey’lerin dahili çalışma şekli
- Passkeys API - FIDO2/WebAuthn uç nokta referansı