4.4 KiB
4.4 KiB
Clerk Kayıt Sorunu - Acil Çözüm
Durum
- Email: ozsahinmuhammet1@gmail.com
- Durum: Clerk'te kayıt oldu ama database'de profil yok
- Sonuç: Admin panelinde görünmüyor
Kök Neden
Clerk webhook yapılandırılmamış, bu yüzden:
- Kullanıcı Clerk'te kayıt oldu ✅
- Webhook tetiklenmedi ❌
- Database'de profil oluşmadı ❌
- Kullanıcı henüz giriş yapmadı (client-side fallback çalışmadı) ❌
Hızlı Çözüm (2 Dakika)
Adım 1: Kullanıcı Giriş Yapmalı
- ozsahinmuhammet1@gmail.com ile giriş yapın (sign in)
- Giriş yaptığınızda otomatik olarak profil oluşacak
- Profil oluşunca provider kaydı yapabilirsiniz
Adım 2: Provider Kaydı
- Giriş yaptıktan sonra
/provider-infosayfasına gidin - "Provider Olarak Kayıt Ol" butonuna tıklayın
- İşletme bilgilerini doldurun
- Kayıt tamamlandığında admin panelinde görüneceksiniz
Kalıcı Çözüm: Webhook Yapılandırması
Neden Webhook Gerekli?
- Kullanıcılar kayıt olduğunda anında database'e eklenir
- Giriş yapmadan önce profil oluşur
- Admin panelinde hemen görünür
Webhook Kurulum Adımları
1. Clerk Dashboard
- Clerk Dashboard → Webhooks
- "Add Endpoint" butonuna tıklayın
- Endpoint URL:
https://pkycoiknpdwzkarqelai.supabase.co/functions/v1/clerk-webhook
- Events seçin:
- ✅
user.created - ✅
user.updated - ✅
user.deleted
- ✅
- "Create" butonuna tıklayın
- Signing Secret'i kopyalayın (örn:
whsec_xxxxx)
2. Supabase Secrets
- Supabase Dashboard
- Settings → Edge Functions → Secrets
- "Add Secret":
- Name:
CLERK_WEBHOOK_SECRET - Value: (Clerk'ten kopyaladığınız signing secret)
- Name:
- "Save"
3. Test
- Clerk'te yeni bir test kullanıcısı oluşturun
- Database'i kontrol edin:
SELECT * FROM profiles ORDER BY created_at DESC LIMIT 5;
- Yeni profil görünmelidir ✅
Manuel Profil Oluşturma (Acil Durum)
Eğer kullanıcı giriş yapamıyorsa veya hemen profil oluşturmak gerekiyorsa:
SQL ile Manuel Oluşturma
-- Admin olarak Supabase SQL Editor'de çalıştırın
INSERT INTO profiles (
clerk_user_id,
email,
username,
full_name,
role,
is_active,
created_at,
updated_at
) VALUES (
'CLERK_USER_ID_BURAYA', -- Clerk'ten alınacak
'ozsahinmuhammet1@gmail.com',
'muhammet_ozsahin',
'Muhammet Özşahin',
'user',
true,
NOW(),
NOW()
);
NOT: Clerk User ID'yi bulmak için:
- Clerk Dashboard → Users
- ozsahinmuhammet1@gmail.com kullanıcısını bulun
- User ID'yi kopyalayın (örn:
user_xxxxx)
Sorun Giderme
Kontrol 1: Clerk Yapılandırması
SELECT * FROM site_settings WHERE key = 'clerk_publishable_key';
Sonuç: ✅ Yapılandırılmış
Kontrol 2: Profil Var mı?
SELECT * FROM profiles WHERE email = 'ozsahinmuhammet1@gmail.com';
Sonuç: ❌ Yok (bu yüzden giriş yapmalı)
Kontrol 3: Provider Kaydı Var mı?
SELECT * FROM provider_services WHERE provider_id IN (
SELECT id FROM profiles WHERE email = 'ozsahinmuhammet1@gmail.com'
);
Sonuç: ❌ Profil olmadığı için provider kaydı da yok
Beklenen Akış
Webhook Olmadan (Mevcut Durum)
1. Clerk'te kayıt ol ✅
↓
2. Email doğrulama (varsa)
↓
3. GİRİŞ YAP ⚠️ (ZORUNLU)
↓
4. useClerkAuthImplementation hook çalışır
↓
5. Profil oluşturulur ✅
↓
6. Provider kaydı yap
↓
7. Admin panelinde görün ✅
Webhook ile (Önerilen)
1. Clerk'te kayıt ol ✅
↓
2. Webhook tetiklenir ✅
↓
3. Profil oluşturulur ✅
↓
4. Giriş yap
↓
5. Provider kaydı yap
↓
6. Admin panelinde görün ✅
Özet
Hemen Yapılması Gereken:
- ✅ ozsahinmuhammet1@gmail.com ile giriş yapın
- ✅ Profil otomatik oluşacak
- ✅ Provider kaydı yapın
- ✅ Admin panelinde görüneceksiniz
Uzun Vadeli:
- ✅ Webhook yapılandırın (yukarıdaki adımları takip edin)
- ✅ Gelecekteki kullanıcılar otomatik olarak database'e eklenecek
Yardım
Eğer hala sorun yaşıyorsanız:
- Browser console'u açın (F12)
- Giriş yapmayı deneyin
- Hata mesajlarını kontrol edin
/admin/clerk-diagnosticssayfasını ziyaret edin- Detaylı durum bilgisi görün