Dostlar,


Yardımcı olabilecek babayiğit varsa ücreti mukabilinde destek alabilirim






Sunucumda geliştirdiğim Shopify App projesinde backend tarafında garip bir kimlik doğrulama sorunu yaşıyorum.
Her şey normal çalışırken API isteklerinde sürekli 401 Unauthorized dönmeye başladı. Loglarda genellikle şu satırları görüyorum:

GET /api/catalog 401 35 - 0.7 ms GET /api/orders?limit=25 401 35 - 0.4 ms HEAD /api/auth/callback 401 35 - 0.3 ms
Uygulama Node + Express + Prisma + PostgreSQL üzerinde çalışıyor.
Caddy reverse proxy üzerinden HTTPS sağlıyorum. Cookie tabanlı JWT auth var.

Şu ana kadar yaptıklarım:

  • JWT token’ı container içinde manuel ürettim (docker compose exec app node -e "...") ve header ile test ettim → 200 OK geliyor.
    Yani middleware çalışıyor.
  • Ancak tarayıcıdan (frontend → API) yapılan isteklerde cookie hiç gönderilmiyor veya backend doğrulamıyor gibi davranıyor.
  • app.set('trust proxy', 1) ayarlı,
  • Set-Cookie header’ında Secure; SameSite=None var,
  • Frontend axios tarafında withCredentials: true aktif.
  • CORS ayarlarında origin: 'https://app.gsb-engine.dev', credentials: true mevcut.

Tahmin ettiğim olası sebepler

  • Cookie domain veya path uyuşmazlığı (app.gsb-engine.dev vs alt path).
  • Shopify iframe içinde olduğundan browser cookie’yi siliyor olabilir (SameSite/secure uyumsuzluğu).
  • JWT’nin exp veya nbf zaman aralığı çok dar.
  • Callback route’ları auth middleware arkasında kalmış olabilir.

Rica


Benimle benzer yapı kurmuş olan varsa,
  • Shopify embedded app ortamında cookie + JWT auth’ı nasıl stabil hale getirdiğini
  • SameSite=None; Secure dışında nelere dikkat ettiğini
  • axios veya fetch tarafında özel header/config kullandıysa örnekle paylaşabilir mi?
Backend tarafı Express, ön taraf Vue (bazı örneklerde React Polaris de geçerli olur).
Caddy reverse proxy kullanıyorum.