tractatus/public/js
TheFlow 760be83304 fix(newsletter): resolve CSRF token issue for static HTML pages
Problem:
- nginx serves blog.html as static file, bypassing Express middleware
- setCsrfToken middleware never runs
- No CSRF cookie set
- Newsletter subscription fails with 403 Forbidden

Root cause:
nginx config: 'try_files $uri @proxy' serves static files directly
Location: /etc/nginx/sites-available/tractatus (line 54)

Solution:
1. blog.js now fetches CSRF token via /api/csrf-token on page load
2. getCsrfToken endpoint now creates token if missing (for static pages)
3. Newsletter form uses fetched token for subscription

Testing:
 Local test: CSRF token fetched successfully
 Newsletter subscription: Creates record in database
 Verified: test-fix@example.com subscribed via curl test

Impact:
- Newsletter subscriptions now work on production
- Fix applies to all static HTML pages (blog.html, etc.)
- Maintains CSRF protection security

Files:
- public/js/blog.js: Added fetchCsrfToken() + use in newsletter form
- src/middleware/csrf-protection.middleware.js: Enhanced getCsrfToken()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 09:37:16 +13:00
..
admin chore: bump cache version to 0.1.1 for JS changes 2025-10-25 08:47:54 +13:00
components fix(architecture): interactive diagram SVG click handler timing issues 2025-10-24 18:22:15 +13:00
demos fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
utils fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
blog-post.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
blog.js fix(newsletter): resolve CSRF token issue for static HTML pages 2025-10-25 09:37:16 +13:00
case-submission.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
check-version.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
docs-app.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
docs-search-enhanced.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
docs-viewer-app.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
faq.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
i18n-simple.js chore(frontend): update cache-busting versions and i18n 2025-10-23 10:57:32 +13:00
koha-donation.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
koha-success.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
koha-transparency.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
leader-page.js feat(leader): WCAG accessibility with 9 accordions, keyboard navigation 2025-10-23 00:19:23 +13:00
media-inquiry.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
media-triage-transparency.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
page-transitions.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
researcher-page.js feat(researcher): WCAG compliance, Berlin/Weil foundations, fixed footer i18n 2025-10-22 23:56:37 +13:00
scroll-animations.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
version-manager.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00