38980-vm/app-9w9pd00g5j41/CLERK_KEY_NOT_WORKING.md
2026-03-04 18:25:09 +00:00

232 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🔧 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ıı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