232 lines
6.2 KiB
Markdown
232 lines
6.2 KiB
Markdown
# 🔧 Clerk Anahtarı Sorunu - Çözüm Rehberi
|
||
|
||
## Sorun
|
||
Admin Settings sayfasından Clerk anahtarını girdiniz ama "Kimlik Doğrulama Yapılandırılmamış" uyarısı hala görünüyor.
|
||
|
||
## Neden Oluyor?
|
||
1. **Database kaydetme sorunu:** RLS (Row Level Security) politikaları nedeniyle anahtar database'e kaydedilemiyor olabilir
|
||
2. **Sayfa yenilenmedi:** Anahtar kaydedildi ama sayfa düzgün yenilenmedi
|
||
3. **Admin yetkisi yok:** Kullanıcınız admin rolüne sahip olmayabilir
|
||
|
||
---
|
||
|
||
## ✅ Çözüm 1: .env Dosyasına Doğrudan Ekleme (ÖNERİLEN)
|
||
|
||
Bu yöntem en güvenilir ve hızlı çözümdür.
|
||
|
||
### Adımlar:
|
||
|
||
1. **Proje kök dizinindeki `.env` dosyasını açın**
|
||
- Dosya yolu: `/workspace/app-9w9pd00g5j41/.env`
|
||
|
||
2. **Clerk anahtarınızı ekleyin**
|
||
```bash
|
||
# Mevcut satırı bulun (18. satır):
|
||
VITE_CLERK_PUBLISHABLE_KEY=
|
||
|
||
# Anahtarınızı ekleyin:
|
||
VITE_CLERK_PUBLISHABLE_KEY=pk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
```
|
||
|
||
3. **Dosyayı kaydedin** (Ctrl+S veya Cmd+S)
|
||
|
||
4. **Development server'ı yeniden başlatın**
|
||
```bash
|
||
# Terminal'de:
|
||
# 1. Mevcut server'ı durdurun (Ctrl+C)
|
||
# 2. Yeniden başlatın:
|
||
npm run dev
|
||
```
|
||
|
||
5. **Tarayıcıyı yenileyin** (Ctrl+Shift+R veya Cmd+Shift+R)
|
||
|
||
✅ **Sonuç:** Artık "Kimlik Doğrulama Yapılandırılmamış" uyarısı kaybolmalı ve Clerk login formu görünmeli.
|
||
|
||
---
|
||
|
||
## ✅ Çözüm 2: Database'e Manuel Ekleme
|
||
|
||
Eğer .env dosyasını kullanmak istemiyorsanız, database'e manuel olarak ekleyebilirsiniz.
|
||
|
||
### Adımlar:
|
||
|
||
1. **Supabase Dashboard'a gidin**
|
||
- URL: https://supabase.com/dashboard/project/vtztatcglebrnvikvntf
|
||
|
||
2. **SQL Editor'ü açın**
|
||
- Sol menüden "SQL Editor" seçeneğine tıklayın
|
||
|
||
3. **Aşağıdaki SQL komutunu çalıştırın**
|
||
```sql
|
||
-- Clerk anahtarını ekle
|
||
INSERT INTO site_settings (key, value)
|
||
VALUES ('clerk_publishable_key', 'pk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
|
||
ON CONFLICT (key)
|
||
DO UPDATE SET value = EXCLUDED.value, updated_at = NOW();
|
||
```
|
||
|
||
**Not:** `pk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX` yerine kendi anahtarınızı yazın!
|
||
|
||
4. **Run butonuna tıklayın**
|
||
|
||
5. **Uygulamayı yenileyin**
|
||
- Tarayıcıda Ctrl+Shift+R veya Cmd+Shift+R
|
||
|
||
✅ **Sonuç:** Anahtar database'e kaydedildi ve uygulama yeniden yüklendiğinde algılanacak.
|
||
|
||
---
|
||
|
||
## ✅ Çözüm 3: Admin Yetkisi Kontrolü
|
||
|
||
Eğer yukarıdaki çözümler işe yaramadıysa, admin yetkisi sorunu olabilir.
|
||
|
||
### Kontrol:
|
||
|
||
1. **Supabase Dashboard > SQL Editor**
|
||
|
||
2. **Kullanıcınızın admin olup olmadığını kontrol edin**
|
||
```sql
|
||
-- Tüm kullanıcıları ve rollerini listele
|
||
SELECT id, email, username, role, clerk_user_id
|
||
FROM profiles
|
||
ORDER BY created_at DESC;
|
||
```
|
||
|
||
3. **Eğer rolünüz 'admin' değilse, güncelleyin**
|
||
```sql
|
||
-- Email adresinizi kullanarak admin yapın
|
||
UPDATE profiles
|
||
SET role = 'admin'
|
||
WHERE email = 'sizin@email.com';
|
||
```
|
||
|
||
**Not:** `sizin@email.com` yerine kendi email adresinizi yazın!
|
||
|
||
4. **Çıkış yapıp tekrar giriş yapın**
|
||
|
||
✅ **Sonuç:** Artık admin yetkileriniz var ve Settings sayfasından anahtar kaydedebilirsiniz.
|
||
|
||
---
|
||
|
||
## 🔍 Doğrulama
|
||
|
||
Hangi çözümü kullandıysanız, şu adımlarla doğrulayın:
|
||
|
||
### 1. Console Loglarını Kontrol Edin
|
||
```
|
||
Tarayıcıda F12 > Console sekmesi
|
||
```
|
||
|
||
**Görmek istediğiniz:**
|
||
```
|
||
✅ Found Clerk key in site_settings
|
||
```
|
||
veya
|
||
```
|
||
✅ Clerk key loaded from environment
|
||
```
|
||
|
||
**Görmek istemediğiniz:**
|
||
```
|
||
⚠️ No Clerk Publishable Key found in database or environment.
|
||
```
|
||
|
||
### 2. Clerk Formu Görünüyor mu?
|
||
- Ana sayfada "Giriş Yap" butonuna tıklayın
|
||
- Clerk login formu görünmeli (email input, Continue butonu)
|
||
- "Kimlik Doğrulama Yapılandırılmamış" uyarısı OLMAMALI
|
||
|
||
### 3. Database Kontrolü (Opsiyonel)
|
||
```sql
|
||
-- Anahtarın database'de olup olmadığını kontrol et
|
||
SELECT key, value, updated_at
|
||
FROM site_settings
|
||
WHERE key = 'clerk_publishable_key';
|
||
```
|
||
|
||
---
|
||
|
||
## 🐛 Hala Çalışmıyor mu?
|
||
|
||
### Adım 1: Cache Temizleme
|
||
```bash
|
||
# Terminal'de:
|
||
rm -rf node_modules/.vite
|
||
npm run dev
|
||
```
|
||
|
||
### Adım 2: Browser Cache Temizleme
|
||
```
|
||
1. Tarayıcıda F12 > Application sekmesi
|
||
2. "Clear storage" > "Clear site data"
|
||
3. Sayfayı yenileyin (Ctrl+Shift+R)
|
||
```
|
||
|
||
### Adım 3: Anahtarın Formatını Kontrol Edin
|
||
```
|
||
✅ Doğru format: pk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
✅ Doğru format: pk_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
❌ Yanlış format: sk_test_... (Bu Secret Key, Publishable Key değil!)
|
||
❌ Yanlış format: whsec_... (Bu Webhook Secret!)
|
||
```
|
||
|
||
### Adım 4: Anahtarın Geçerliliğini Test Edin
|
||
1. Clerk Dashboard'a gidin: https://dashboard.clerk.com/
|
||
2. API Keys sayfasına gidin
|
||
3. Publishable Key'in aktif olduğunu kontrol edin
|
||
4. Anahtarı yeniden kopyalayın (boşluk karakteri olmamalı!)
|
||
|
||
---
|
||
|
||
## 📋 Hızlı Kontrol Listesi
|
||
|
||
Aşağıdaki adımları sırayla kontrol edin:
|
||
|
||
- [ ] Clerk anahtarı `pk_test_` veya `pk_live_` ile başlıyor
|
||
- [ ] .env dosyasında `VITE_CLERK_PUBLISHABLE_KEY=` satırına anahtar eklendi
|
||
- [ ] .env dosyası kaydedildi
|
||
- [ ] Development server yeniden başlatıldı (`npm run dev`)
|
||
- [ ] Tarayıcı cache temizlendi (Ctrl+Shift+R)
|
||
- [ ] Console'da hata yok
|
||
- [ ] "Kimlik Doğrulama Yapılandırılmamış" uyarısı kayboldu
|
||
- [ ] Clerk login formu görünüyor
|
||
|
||
---
|
||
|
||
## 💡 Önerilen Yöntem
|
||
|
||
**Development için:** .env dosyası (Çözüm 1)
|
||
- ✅ En hızlı
|
||
- ✅ En güvenilir
|
||
- ✅ Server restart ile hemen çalışır
|
||
|
||
**Production için:** Database (Çözüm 2)
|
||
- ✅ Dinamik güncelleme
|
||
- ✅ Admin panel'den yönetilebilir
|
||
- ✅ Birden fazla environment için uygun
|
||
|
||
---
|
||
|
||
## 🔗 İlgili Dokümantasyon
|
||
|
||
- **Clerk Kurulum:** [CLERK_SETUP_GUIDE.md](./CLERK_SETUP_GUIDE.md)
|
||
- **Hızlı Referans:** [CLERK_QUICK_REFERENCE.md](./CLERK_QUICK_REFERENCE.md)
|
||
- **Sorun Giderme:** [CLERK_TROUBLESHOOTING.md](./CLERK_TROUBLESHOOTING.md)
|
||
- **Tüm Rehberler:** [CLERK_DOCUMENTATION_INDEX.md](./CLERK_DOCUMENTATION_INDEX.md)
|
||
|
||
---
|
||
|
||
## 📞 Destek
|
||
|
||
Eğer hala sorun yaşıyorsanız:
|
||
|
||
1. **Console loglarını kontrol edin** (F12 > Console)
|
||
2. **Network sekmesini kontrol edin** (F12 > Network)
|
||
3. **Supabase logs'u kontrol edin** (Supabase Dashboard > Logs)
|
||
4. **Hata mesajlarını not edin** ve dokümantasyona bakın
|
||
|
||
---
|
||
|
||
**Son Güncelleme:** 2026-02-26
|
||
**Versiyon:** 1.0
|