1.6 KiB
1.6 KiB
Clerk JWT Fix - Hızlı Referans
✅ Uygulanan Değişiklikler
1. Migration 00093: Profiles INSERT Policy
CREATE POLICY "Allow profile creation with clerk_user_id"
ON profiles FOR INSERT
TO public
WITH CHECK (
clerk_user_id IS NOT NULL
AND clerk_user_id <> ''
AND email IS NOT NULL
);
Ne Yapar:
- ✅ Anon role ile profil oluşturulabilir
- ✅ clerk_user_id ve email zorunlu
- ✅ Güvenlik korunur
2. Migration 00094: Profiles UPDATE Policy
CREATE POLICY "Allow profile update with email match"
ON profiles FOR UPDATE
TO public
USING (
email IS NOT NULL
AND (clerk_user_id IS NULL OR clerk_user_id = '')
)
WITH CHECK (
clerk_user_id IS NOT NULL
AND clerk_user_id <> ''
);
Ne Yapar:
- ✅ Email ile profil bulunup clerk_user_id bağlanabilir
- ✅ Sadece henüz bağlanmamış profiller güncellenebilir
- ✅ Güvenlik korunur
🎯 Sonuç
Şimdi Çalışıyor
- ✅ Yeni kullanıcı kaydı
- ✅ Mevcut profil bağlama
- ✅ Clerk webhook
- ✅ useAuth hook
Güvenlik
- ✅ clerk_user_id zorunlu
- ✅ email zorunlu
- ✅ Rastgele insert önlenir
- ✅ Sadece bağlanmamış profiller güncellenebilir
📌 Önerilen Adım
Clerk Dashboard'da Supabase JWT Template oluşturun:
- Clerk Dashboard → JWT Templates
- Template adı:
supabase - Signing key: Supabase JWT Secret
- Lifetime: 3600
Neden?
- Daha güvenli
- authenticated role özellikleri
- Tüm RLS politikaları normal çalışır
📚 Detaylı Bilgi
Detaylı açıklama için: CLERK_JWT_FIX.md