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 cookieyi siliyor olabilir (SameSite/secure uyumsuzluğu).
- JWTnin exp veya nbf zaman aralığı çok dar.
- Callback routeları 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.