- Review all changes in
SECURITY_FIX_SUMMARY.md - Verify backend is setting httpOnly cookies on login
- Test login flow in development environment
- Test 2FA flow in development environment
- Test wallet operations (mint, burn, send)
- Verify no API keys in sessionStorage (DevTools)
- Check CSP headers in browser DevTools Network tab
- Deploy backend changes first (if any cookie configuration needed)
- Deploy frontend changes
- Clear all user sessions (users will need to re-login)
- Monitor error logs for authentication issues
- Login works correctly
- Logout clears session
- 2FA flow works
- Wallet operations work
- API requests succeed with cookies
- CSP headers are present
- No console errors related to auth
- Check sessionStorage in DevTools - should NOT contain:
acbu_api_keyacbu_passcode
If issues occur:
- Revert frontend deployment
- Users may need to clear cookies and re-login
- Check backend logs for cookie-related errors
Run these checks in browser DevTools:
// Should return null (no API key in sessionStorage)
sessionStorage.getItem('acbu_api_key')
// Should return null (no passcode in sessionStorage)
sessionStorage.getItem('acbu_passcode')
// Check cookies in DevTools:
// - Open DevTools > Application > Cookies
// - Or check Network tab > Headers > Set-Cookie
// - Look for httpOnly session cookie (cannot be read via document.cookie)contexts/auth-context.tsx- Removed API key storagelib/api/client.ts- Removed Bearer token authapp/auth/signin/page.tsx- Updated login flowapp/auth/2fa/page.tsx- Updated 2FA flowlib/passcode-manager.ts- NEW: In-memory passcode storagelib/wallet-storage.ts- Use in-memory passcodemiddleware.ts- NEW: CSP and security headers
If users report issues:
- Ask them to clear cookies and sessionStorage
- Ask them to log in again
- Check if they can complete wallet operations
- Verify CSP isn't blocking legitimate scripts