72 lines
1.6 KiB
Markdown
72 lines
1.6 KiB
Markdown
# Clerk JWT Fix - Hızlı Referans
|
||
|
||
## ✅ Uygulanan Değişiklikler
|
||
|
||
### 1. Migration 00093: Profiles INSERT Policy
|
||
```sql
|
||
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
|
||
```sql
|
||
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:
|
||
1. [Clerk Dashboard](https://dashboard.clerk.com) → JWT Templates
|
||
2. Template adı: `supabase`
|
||
3. Signing key: Supabase JWT Secret
|
||
4. 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](./CLERK_JWT_FIX.md)
|