first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 22:27:56 +03:00
commit d9f1ea341e
1021 changed files with 70645 additions and 0 deletions

239
SOCIAL_AUTH_SETUP.md Normal file
View File

@@ -0,0 +1,239 @@
# 🔐 Social Authentication Setup & Test Guide
## ⚠️ Google OAuth Setup (ZORUNLU)
Google ile login çalışması için callback URL'lerini Google Console'da eklemeniz gerekiyor:
### Adımlar:
1. **Google Cloud Console'a git:**
https://console.cloud.google.com/apis/credentials
2. **Projenizi seçin** (veya yeni proje oluşturun)
3. **OAuth 2.0 Client ID'nize tıklayın:**
- Client ID: `915364976256-691m0s87as2r5vdbqr96f6humblseobt.apps.googleusercontent.com`
4. **"Authorized redirect URIs" bölümüne şu URL'leri ekleyin:**
```
http://localhost:8000/api/v1/social/complete/google-oauth2/
http://localhost:8000/complete/google-oauth2/
http://127.0.0.1:8000/api/v1/social/complete/google-oauth2/
```
5. **"Authorized JavaScript origins" bölümüne:**
```
http://localhost:8000
http://127.0.0.1:8000
```
6. **Kaydet** butonuna tıklayın
---
## 🧪 Test Seçenekleri
### Seçenek 1: HTML Test Sayfası (ÖNERİLEN ✅)
En kolay test yöntemi:
```bash
# Tarayıcınızda açın:
file:///home/beyhan/Python/server/templates/test_social_auth.html
```
**Veya:**
1. Dosya yöneticisinde `/home/beyhan/Python/server/templates/test_social_auth.html` dosyasına git
2. Çift tıkla (tarayıcıda açılır)
3. "Login with Google" butonuna tıkla
---
### Seçenek 2: Python Test Scripti
Terminal'de interaktif test:
```bash
cd /home/beyhan/Python/server
source .venv/bin/activate
python test_social_auth_manual.py
```
Bu script ile:
- Google OAuth test edebilirsiniz (real token ile)
- GitHub OAuth test edebilirsiniz
---
### Seçenek 3: Google OAuth Playground
Gerçek access token almak için:
1. **Git:** https://developers.google.com/oauthplayground/
2. **Settings (sağ üstte ⚙️):**
- "Use your own OAuth credentials" seçeneğini aktif et
- OAuth Client ID: `915364976256-691m0s87as2r5vdbqr96f6humblseobt.apps.googleusercontent.com`
- OAuth Client secret: `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`
3. **Step 1 - Select & authorize APIs:**
- Google OAuth2 API v2 seç
- `https://www.googleapis.com/auth/userinfo.email` ✅
- `https://www.googleapis.com/auth/userinfo.profile` ✅
- "Authorize APIs" butonuna tıkla
4. **Step 2 - Exchange authorization code for tokens:**
- "Exchange authorization code for tokens" butonuna tıkla
- Access token kopyala
5. **Test et:**
```bash
curl -X POST http://localhost:8000/api/v1/auth/social/google-oauth2/ \
-H "Content-Type: application/json" \
-d '{"access_token":"<BURAYA_TOKEN_YAPIŞTIR>"}'
```
---
## 🐙 GitHub OAuth Setup
GitHub için daha basit:
### Adımlar:
1. **GitHub Settings'e git:**
https://github.com/settings/developers
2. **OAuth Apps'e tıkla**
3. **Uygulamanızı bul veya yeni oluştur:**
- Application name: Django REST API Test
- Homepage URL: `http://localhost:8000`
- Authorization callback URL: `http://localhost:8000/api/v1/social/complete/github/`
4. **Client ID ve Client Secret'ı kontrol et:**
- Client ID: `Ov23liUt9B61O46Mdfm4`
- Client Secret: `c7fc8dcb1b2c8f22120608425d07d5efd995baaf`
### Test için Personal Access Token:
Alternatif olarak, test için GitHub Personal Access Token kullanabilirsiniz:
1. **Git:** https://github.com/settings/tokens
2. **Generate new token (classic)**
3. **Scopes seç:**
- `user` ✅
- `user:email` ✅
4. **Token'ı oluştur ve kopyala**
5. **Test et:**
```bash
curl -X POST http://localhost:8000/api/v1/auth/social/github/ \
-H "Content-Type: application/json" \
-d '{"access_token":"<GITHUB_TOKEN>"}'
```
---
## ✅ Test Kontrolü
Başarılı bir social login response'u şöyle görünmeli:
```json
{
"access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 2,
"email": "user@gmail.com",
"first_name": "John",
"last_name": "Doe",
"is_active": true,
"date_joined": "2025-12-12T22:00:00Z"
}
}
```
---
## 🐛 Troubleshooting
### "redirect_uri_mismatch" hatası:
- Google Console'da redirect URI'ları kontrol edin
- Tam olarak `http://localhost:8000/api/v1/social/complete/google-oauth2/` olmalı
### "invalid_client" hatası:
- Client ID ve Secret'ın doğru olduğundan emin olun
- Google Console'da OAuth consent screen'i yapılandırdınız mı?
### "Email not provided" hatası:
- OAuth scope'unda `userinfo.email` var mı kontrol edin
- Provider settings'de email scope'u aktif mi?
### Server hatası:
```bash
# Server çalıştığından emin olun:
cd /home/beyhan/Python/server
source .venv/bin/activate
python manage.py runserver
```
### Social auth view çalışmıyor:
```bash
# URL'leri kontrol edin:
curl http://localhost:8000/api/v1/auth/social/google-oauth2/ \
-X POST -H "Content-Type: application/json" \
-d '{"access_token":"test"}'
# 400 Bad Request bekliyoruz (invalid token), 404 değil!
```
---
## 📊 Test Checklist
- [ ] Google Console'da redirect URI'lar eklendi
- [ ] Django server çalışıyor (`python manage.py runserver`)
- [ ] HTML test sayfasıılıyor
- [ ] Google "Login" butonu çalışıyor
- [ ] Access token alınıyor
- [ ] Backend'e request gidiyor
- [ ] JWT tokens dönüyor
- [ ] User bilgileri görünüyor
---
## 🎯 Hızlı Test Komutu
En hızlı test:
```bash
# 1. Server'ı başlat (bir terminalde)
cd /home/beyhan/Python/server
source .venv/bin/activate
python manage.py runserver
# 2. Test scriptini çalıştır (başka terminalde)
cd /home/beyhan/Python/server
source .venv/bin/activate
python test_social_auth_manual.py
```
Veya:
```bash
# HTML sayfasını tarayıcıda aç:
xdg-open /home/beyhan/Python/server/templates/test_social_auth.html
```
---
## 📚 Daha Fazla Bilgi
- **API Dokümantasyonu:** [AUTH.md](./AUTH.md)
- **Genel Bakış:** [README.md](./README.md)
- **Hızlı Başlangıç:** [QUICK_START.md](./QUICK_START.md)
---
**İyi Testler! 🚀**