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

4.4 KiB
Raw Permalink Blame History

Clerk Kayıt Sorunu - Acil Çözüm

Durum

Kök Neden

Clerk webhook yapılandırılmamış, bu yüzden:

  1. Kullanıcı Clerk'te kayıt oldu
  2. Webhook tetiklenmedi
  3. Database'de profil oluşmadı
  4. Kullanıcı henüz giriş yapmadı (client-side fallback çalışmadı)

Hızlı Çözüm (2 Dakika)

Adım 1: Kullanıcı Giriş Yapmalı

  1. ozsahinmuhammet1@gmail.com ile giriş yapın (sign in)
  2. Giriş yaptığınızda otomatik olarak profil oluşacak
  3. Profil oluşunca provider kaydı yapabilirsiniz

Adım 2: Provider Kaydı

  1. Giriş yaptıktan sonra /provider-info sayfasına gidin
  2. "Provider Olarak Kayıt Ol" butonuna tıklayın
  3. İşletme bilgilerini doldurun
  4. 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

  1. Clerk Dashboard → Webhooks
  2. "Add Endpoint" butonuna tıklayın
  3. Endpoint URL:
https://pkycoiknpdwzkarqelai.supabase.co/functions/v1/clerk-webhook
  1. Events seçin:
    • user.created
    • user.updated
    • user.deleted
  2. "Create" butonuna tıklayın
  3. Signing Secret'i kopyalayın (örn: whsec_xxxxx)

2. Supabase Secrets

  1. Supabase Dashboard
  2. Settings → Edge Functions → Secrets
  3. "Add Secret":
    • Name: CLERK_WEBHOOK_SECRET
    • Value: (Clerk'ten kopyaladığınız signing secret)
  4. "Save"

3. Test

  1. Clerk'te yeni bir test kullanıcısı oluşturun
  2. Database'i kontrol edin:
SELECT * FROM profiles ORDER BY created_at DESC LIMIT 5;
  1. 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:

  1. Clerk Dashboard → Users
  2. ozsahinmuhammet1@gmail.com kullanıcısını bulun
  3. 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:

  1. ozsahinmuhammet1@gmail.com ile giriş yapın
  2. Profil otomatik oluşacak
  3. Provider kaydı yapın
  4. Admin panelinde görüneceksiniz

Uzun Vadeli:

  1. Webhook yapılandırın (yukarıdaki adımları takip edin)
  2. Gelecekteki kullanıcılar otomatik olarak database'e eklenecek

Yardım

Eğer hala sorun yaşıyorsanız:

  1. Browser console'u açın (F12)
  2. Giriş yapmayı deneyin
  3. Hata mesajlarını kontrol edin
  4. /admin/clerk-diagnostics sayfasını ziyaret edin
  5. Detaylı durum bilgisi görün