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

176 lines
4.4 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 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:
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](https://dashboard.clerk.com) → Webhooks
2. "Add Endpoint" butonuna tıklayın
3. **Endpoint URL**:
```
https://pkycoiknpdwzkarqelai.supabase.co/functions/v1/clerk-webhook
```
4. **Events** seçin:
-`user.created`
-`user.updated`
-`user.deleted`
5. "Create" butonuna tıklayın
6. **Signing Secret**'i kopyalayın (örn: `whsec_xxxxx`)
#### 2. Supabase Secrets
1. [Supabase Dashboard](https://supabase.com/dashboard/project/pkycoiknpdwzkarqelai)
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:
```sql
SELECT * FROM profiles ORDER BY created_at DESC LIMIT 5;
```
3. 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
```sql
-- 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](https://dashboard.clerk.com) → 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ı
```sql
SELECT * FROM site_settings WHERE key = 'clerk_publishable_key';
```
Sonuç: ✅ Yapılandırılmış
### Kontrol 2: Profil Var mı?
```sql
SELECT * FROM profiles WHERE email = 'ozsahinmuhammet1@gmail.com';
```
Sonuç: ❌ Yok (bu yüzden giriş yapmalı)
### Kontrol 3: Provider Kaydı Var mı?
```sql
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