# 🚀 Authentication Quick Start Guide Hızlı başlangıç için adım adım kılavuz. ## ⚡ 5 Dakikada Kurulum ### 1. Environment Variables Oluştur ```bash # .env.local dosyası oluştur cat > .env.local << 'EOF' NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=super-secret-change-this-in-production NEXT_PUBLIC_API_BASE_URL=http://localhost:8000/api/v1 GOOGLE_ID= GOOGLE_SECRET= GITHUB_ID= GITHUB_SECRET= EOF ``` ### 2. NextAuth Secret Üret ```bash openssl rand -base64 32 ``` Çıktıyı `.env.local` dosyasındaki `NEXTAUTH_SECRET` değerine yapıştır. ### 3. Django Backend'i Başlat ```bash # Django projenizde cd your-django-project python manage.py runserver ``` ### 4. Next.js'i Başlat ```bash # Bu projede npm run dev # veya yarn dev ``` ### 5. Test Et! 🎉 ```bash # Tarayıcıda aç: http://localhost:3000/auth/register ``` ## 📍 Hızlı Test Rotaları | URL | Açıklama | |-----|----------| | `/auth/register` | Yeni hesap oluştur | | `/auth/login` | Giriş yap | | `/profile` | Profili görüntüle | | `/dashboard` | Dashboard | ## 🧪 Test Senaryosu (5 Dakika) ### Senaryo 1: Email/Password ile Kayıt ```bash 1. http://localhost:3000/auth/register - Email: test@example.com - Password: Test1234! - İsim: Test User 2. http://localhost:8025 (MailPit) - Aktivasyon emailini aç - Linke tıkla 3. http://localhost:3000/auth/login - Email: test@example.com - Password: Test1234! - Giriş yap 4. http://localhost:3000/profile - Profilini gör - İsim değiştir ``` ### Senaryo 2: Şifre Sıfırlama ```bash 1. http://localhost:3000/auth/password-reset - Email: test@example.com - Gönder 2. http://localhost:8025 (MailPit) - Reset emailini aç - Linke tıkla 3. Yeni şifre: NewPass123! - Şifreyi değiştir 4. http://localhost:3000/auth/login - Yeni şifre ile giriş ``` ## 🔑 Social Auth Kurulumu (Opsiyonel) ### Google OAuth2 (2 dakika) ```bash 1. https://console.cloud.google.com/ → Giriş yap 2. Proje seç/oluştur 3. "APIs & Services" → "Credentials" 4. "Create Credentials" → "OAuth 2.0 Client ID" 5. Web application seç 6. Authorized redirect URIs: http://localhost:3000/api/auth/callback/google 7. Client ID ve Secret'i .env.local'e ekle ``` ### GitHub OAuth2 (2 dakika) ```bash 1. https://github.com/settings/developers → "New OAuth App" 2. Application name: "Your App" 3. Homepage URL: http://localhost:3000 4. Callback URL: http://localhost:3000/api/auth/callback/github 5. Client ID ve Secret'i .env.local'e ekle ``` ## 🎯 API Kullanımı ### Kullanıcı Bilgilerini Al ```typescript const { data: session } = useSession(); const response = await fetch( `${process.env.NEXT_PUBLIC_API_BASE_URL}/auth/users/me/`, { headers: { Authorization: `Bearer ${session.accessToken}`, }, } ); const user = await response.json(); ``` ### Profil Güncelle ```typescript const response = await fetch( `${process.env.NEXT_PUBLIC_API_BASE_URL}/auth/users/me/`, { method: "PATCH", headers: { "Content-Type": "application/json", Authorization: `Bearer ${session.accessToken}`, }, body: JSON.stringify({ first_name: "Yeni İsim", last_name: "Yeni Soyisim", }), } ); ``` ## 🔒 Protected Route Oluşturma ```typescript "use client"; import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; export default function ProtectedPage() { const { data: session, status } = useSession(); const router = useRouter(); useEffect(() => { if (status === "unauthenticated") { router.push("/auth/login"); } }, [status, router]); if (status === "loading") { return
Loading...
; } if (!session) { return null; } return
Protected Content
; } ``` ## 🐛 Hızlı Troubleshooting ### Problem: "CORS error" **Çözüm**: Django `settings.py` ```python CORS_ALLOWED_ORIGINS = [ "http://localhost:3000", ] ``` ### Problem: "Login failed" **Kontrol**: - ✅ Django backend çalışıyor mu? - ✅ API_BASE_URL doğru mu? - ✅ Email aktifleştirildi mi? ### Problem: "Social auth failed" **Kontrol**: - ✅ OAuth credentials doğru mu? - ✅ Redirect URI eşleşiyor mu? - ✅ Django'da social auth kurulu mu? ### Problem: "Email gelmiyor" **Kontrol**: - ✅ MailPit çalışıyor mu? (`http://localhost:8025`) - ✅ Django email ayarları yapıldı mı? ## 📦 Paketler Tüm gerekli paketler zaten kurulu: ```json { "dependencies": { "next": "16.1.1", "next-auth": "^4.24.13", "react": "19.2.3", "react-dom": "19.2.3" } } ``` ## 📚 Daha Fazla Bilgi - **Detaylı API Docs**: `AUTH.md` - **Kurulum Kılavuzu**: `SETUP.md` - **Implementation**: `AUTH-IMPLEMENTATION.md` ## ✅ Checklist Kurulum tamamlandı mı? - [ ] `.env.local` oluşturuldu - [ ] `NEXTAUTH_SECRET` oluşturuldu - [ ] Django backend çalışıyor - [ ] Next.js dev server çalışıyor - [ ] `/auth/register` sayfası açılıyor - [ ] Test kullanıcı oluşturuldu - [ ] Email aktivasyonu test edildi - [ ] Login başarılı - [ ] Dashboard erişildi - [ ] Profil güncelleme çalışıyor ## 🎉 Başarılı! Artık tam özellikli bir authentication sistemine sahipsiniz: ✅ Email/Password authentication ✅ Social authentication (Google, GitHub) ✅ Email activation ✅ Password reset ✅ User profile management ✅ Token refresh ✅ Protected routes **Production'a hazır!** 🚀 --- **Last Updated**: 24 Aralık 2025