Files
AuthCentral/API_QUICK_REFERENCE.md
Beyhan Oğur 8b1fbdee99 first commit
2026-04-26 21:37:58 +03:00

7.5 KiB
Raw Blame History

API Quick Reference - Hard Delete

🎯 En Hızlı Yöntem (Copy-Paste)

Email ile Kullanıcı Sil

# 1. Bu değişkenleri değiştir
EMAIL_TO_DELETE="test@example.com"

# 2. Komutu çalıştır (tek satır)
TOKEN=$(curl -s -X POST http://localhost:8080/v1/auth/login -H "Content-Type: application/json" -d '{"email":"admin@gauth.local","password":"Admin@123"}' | jq -r '.access_token') && USER_ID=$(curl -s -X GET "http://localhost:8080/v1/admin/users/search?q=$EMAIL_TO_DELETE" -H "Authorization: Bearer $TOKEN" | jq -r '.users[0].id') && curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" -H "Authorization: Bearer $TOKEN" | jq '.'

User ID ile Kullanıcı Sil

# 1. Bu değişkenleri değiştir
USER_ID_TO_DELETE="6df5465d-b8e6-44d2-970a-f682cb428e80"

# 2. Komutu çalıştır (tek satır)
TOKEN=$(curl -s -X POST http://localhost:8080/v1/auth/login -H "Content-Type: application/json" -d '{"email":"admin@gauth.local","password":"Admin@123"}' | jq -r '.access_token') && curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID_TO_DELETE?hard=true" -H "Authorization: Bearer $TOKEN" | jq '.'

📋 API Endpoints Tablosu

Endpoint Method Auth Body/Params ıklama
/v1/auth/login POST {"email":"admin@gauth.local","password":"Admin@123"} Admin login
/v1/admin/users/search GET ?q=email@test.com Email ile kullanıcı ara
/v1/admin/users GET ?page=1&limit=10 Kullanıcıları listele
/v1/admin/users/{id} GET - Kullanıcı detayı
/v1/admin/users/{id} DELETE - Soft delete
/v1/admin/users/{id}?hard=true DELETE - Hard delete

📝 POST/PUT İçin Gerekli Veriler

Yeni Kullanıcı Oluştur

curl -X POST http://localhost:8080/v1/admin/users \
  -H "Authorization: Bearer $TOKEN" \
  -F "email=newuser@test.com" \
  -F "password=password123" \
  -F "user_name=New User" \
  -F "email_verified=false" \
  -F "roles=user"

Gerekli Alanlar:

  • email (string, required) - Email adresi
  • password (string, required) - Şifre (min 6 karakter)
  • user_name (string, required) - Kullanıcı adı (min 3 karakter)
  • email_verified (boolean, optional) - Email doğrulandı mı? (default: false)
  • roles (string, optional) - Roller (virgülle ayrılmış: "admin,user")
  • avatar (file, optional) - Profil resmi

Kullanıcı Güncelle

curl -X PUT http://localhost:8080/v1/admin/users/{user_id} \
  -H "Authorization: Bearer $TOKEN" \
  -F "email=updated@test.com" \
  -F "user_name=Updated Name" \
  -F "email_verified=true" \
  -F "is_active=true" \
  -F "roles=admin,user"

Güncellenebilir Alanlar:

  • email (string, optional)
  • user_name (string, optional)
  • email_verified (boolean, optional)
  • is_active (boolean, optional)
  • roles (string, optional)
  • avatar (file, optional)

Rol Ata/Kaldır

# Rol ata
curl -X POST http://localhost:8080/v1/admin/users/{user_id}/roles \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"roles": ["admin", "user"]}'

# Rol kaldır
curl -X DELETE http://localhost:8080/v1/admin/users/{user_id}/roles/admin \
  -H "Authorization: Bearer $TOKEN"

🔄 Tam İş Akışı Örnekleri

Örnek 1: Kullanıcı Oluştur → Kontrol Et → Hard Delete

#!/bin/bash
set -e

echo "📝 Step 1: Admin Login"
TOKEN=$(curl -s -X POST http://localhost:8080/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"admin@gauth.local","password":"Admin@123"}' | jq -r '.access_token')
echo "✅ Token: ${TOKEN:0:30}..."

echo ""
echo "📝 Step 2: Create Test User"
CREATE_RESULT=$(curl -s -X POST http://localhost:8080/v1/admin/users \
  -H "Authorization: Bearer $TOKEN" \
  -F "email=temp@test.com" \
  -F "password=temp123" \
  -F "user_name=Temp User" \
  -F "email_verified=false" \
  -F "roles=user")
USER_ID=$(echo $CREATE_RESULT | jq -r '.id')
echo "✅ Created User ID: $USER_ID"

echo ""
echo "📝 Step 3: Verify User Exists"
GET_RESULT=$(curl -s -X GET "http://localhost:8080/v1/admin/users/$USER_ID" \
  -H "Authorization: Bearer $TOKEN")
echo "✅ User: $(echo $GET_RESULT | jq -r '.email')"

echo ""
echo "📝 Step 4: Hard Delete User"
DELETE_RESULT=$(curl -s -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
  -H "Authorization: Bearer $TOKEN")
echo "✅ $DELETE_RESULT"

echo ""
echo "📝 Step 5: Verify User Deleted"
VERIFY=$(curl -s -X GET "http://localhost:8080/v1/admin/users/$USER_ID" \
  -H "Authorization: Bearer $TOKEN")
if echo $VERIFY | grep -q "error"; then
  echo "✅ User successfully deleted (not found)"
else
  echo "❌ User still exists!"
fi

Örnek 2: Toplu Test Kullanıcıları Temizleme

#!/bin/bash

echo "🧹 Cleaning test users..."

TOKEN=$(curl -s -X POST http://localhost:8080/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"admin@gauth.local","password":"Admin@123"}' | jq -r '.access_token')

# "test" içeren tüm kullanıcıları bul
USERS=$(curl -s -X GET "http://localhost:8080/v1/admin/users/search?q=test" \
  -H "Authorization: Bearer $TOKEN")

# Her kullanıcıyı hard delete yap
echo "$USERS" | jq -r '.users[] | .id' | while read USER_ID; do
  EMAIL=$(echo "$USERS" | jq -r ".users[] | select(.id==\"$USER_ID\") | .email")
  echo "Deleting: $EMAIL ($USER_ID)"
  
  curl -s -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
    -H "Authorization: Bearer $TOKEN" | jq '.'
  
  sleep 0.2  # Rate limiting
done

echo "✅ Cleanup completed!"

💾 JSON Response Örnekleri

Başarılı Hard Delete

{
  "message": "User deleted permanently successfully"
}

Başarılı Soft Delete

{
  "message": "User deleted soft successfully"
}

Kullanıcı Arama Sonucu

{
  "users": [
    {
      "id": "abc-123",
      "username": "testuser",
      "email": "test@example.com",
      "email_verified": false,
      "created_at": "2026-02-04T20:00:00Z"
    }
  ]
}

Kullanıcı Detay

{
  "id": "abc-123",
  "username": "testuser",
  "email": "test@example.com",
  "avatar": "",
  "email_verified": false,
  "created_at": "2026-02-04T20:00:00Z",
  "updated_at": "2026-02-04T20:00:00Z",
  "roles": [
    {
      "id": 2,
      "name": "user",
      "description": "Default user role",
      "permissions": [
        {
          "name": "user:read"
        }
      ]
    }
  ]
}

⚠️ Önemli Hatırlatmalar

YAPMAYIN YAPIN
Üretimde hard delete kullanmadan test etmeden Önce test ortamında deneyin
Token'ı kodda hard-code etmeyin Environment variable kullanın
Kendi admin hesabınızı silmeye çalışmayın Başka admin oluşturun
Yedek almadan toplu silme Önce yedek alın

🔧 Troubleshooting

Token hatası alıyorsam?

# Token'ı kontrol et
curl -X GET http://localhost:8080/v1/auth/validate \
  -H "Authorization: Bearer $TOKEN"

Kullanıcı bulunamıyor?

# Search ile kontrol et
curl -X GET "http://localhost:8080/v1/admin/users/search?q=email@test.com" \
  -H "Authorization: Bearer $TOKEN" | jq '.'

Hard delete çalışmıyor?

# Önce soft delete dene
curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID" \
  -H "Authorization: Bearer $TOKEN"

# Sonra hard=true ile tekrar dene
curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
  -H "Authorization: Bearer $TOKEN"