- 新增 CaptchaManager 类,统一管理 Turnstile 和 reCAPTCHA 验证码的初始化和 token 管理 - 扩展 BFF 代理支持多验证码提供商,根据配置自动切换验证逻辑 - 新增公共配置端点,动态下发验证码提供商配置到前端 - 重构 API 管理器,统一处理验证码 token 的头部和载荷注入 - 更新 CSP 策略,支持两种验证码服务的域名和资源 - 保留原有 Turnstile 功能的同时,支持 reCAPTCHA 作为备选方案 - 提供灵活的配置选项,可通过环境变量控制提供商开关和强制验证
eSIM Tools 🚀
Modern eSIM management toolkit designed for Giffgaff and Simyo users, supporting complete eSIM application, activation, and QR code generation processes.
✨ Features
🇬🇧 Giffgaff eSIM Tools
- OAuth 2.0 PKCE Authentication - Secure authentication flow
- Smart Cookie Login - Fast login without OAuth
- MFA Multi-Factor Authentication - Email/SMS verification code support
- SMS Verification Activation - Fully automatic eSIM application and activation (✅ Recommended)
- GraphQL API Integration - Complete API call chain
- LPA QR Code Generation - Standard eSIM activation code
Manual Activation Guide- Discontinued on October 8, 2025
🇳🇱 Simyo eSIM Tools
- Account Login Verification - Dutch phone number format validation
- Device Replacement Support - Complete SIM card replacement process
- SMS Verification Code - Automatic sending and verification processing
- Instant QR Code Generation - One-click generation of scannable activation codes
- Installation Confirmation - Ensures eSIM is correctly activated
🖼️ Interface Preview
Below are functional screenshots of the main pages for quick understanding of the tool interface and core operation paths.
Home Page
Giffgaff eSIM Tools
Simyo eSIM Tools
🌐 Online Usage
🚀 Online Service (Recommended)
Full Version: https://esim.cosr.eu.org
- ✅ Supports all eSIM operations and processes
- ✅ Performance optimized, supports offline usage
- ✅ Regular updates and maintenance
🎁 New User Offers
- Simyo Users: New sign-ups enjoy extra €5 credit
- Giffgaff Users: New sign-ups enjoy extra £5 credit
📋 User Guide
🇬🇧 Giffgaff eSIM Application Process (Recommended: SMS Verification Activation)
- Authentication - OAuth login or Cookie fast login
- Email/SMS Verification - Enter received MFA verification code
- Get Member Information - Automatically retrieve account information
- SMS Verification Activation - Select "SMS Verification Activation" (Recommended)
- Click "Send Verification Code"
- Enter the 6-digit SMS verification code received
- System automatically completes booking, exchange, and activation
- Get QR Code - Automatically generates LPA activation code and QR code
✅ Recommended SMS Verification Activation: Fully automated process, no manual operation required
⚠️ Discontinued Feature: Manual activation method was officially fixed and discontinued by Giffgaff on October 8, 2025
📖 Detailed Tutorial: See Giffgaff User Guide for complete图文 and video operation guide
🇳🇱 Simyo eSIM Application Process
- Account Login - Enter Dutch phone number (starting with 06) and password
- Select Service - New application or device replacement
- Verification Code Processing - SMS or customer service verification code verification
- Get Configuration - System generates eSIM configuration information
- Scan to Install - Use the generated QR code to install on new device
📚 Detailed Documentation
- Giffgaff User Guide | 中文版
- Giffgaff Detailed Instructions | 中文版
- Simyo Detailed Instructions | 中文版
- Performance Optimization Guide
🚀 Local Deployment
Quick Start
-
Clone Repository
git clone https://github.com/Silentely/eSIM-Tools.git cd eSIM-Tools -
Install Dependencies
npm install -
Start Proxy Server
# Windows start_simyo_server.bat # macOS/Linux ./start_simyo_server.sh # Or manually start npm start -
Access Application
http://localhost:3000
Requirements
- Modern Browser: Chrome 88+, Firefox 85+, Safari 14+, Edge 88+
- Development Environment: Node.js >= 18.0.0, npm >= 8.0.0 (only needed for local development)
🔧 Technical Architecture
Frontend Tech Stack
- HTML5/CSS3 - Responsive design, modern UI
- JavaScript ES6+ - Modular architecture, modern syntax features
- Bootstrap 5 - Responsive UI framework
- Service Worker - Offline support and cache optimization
Backend Architecture
- Production: Netlify Functions - Serverless functions handling API proxy
- Development: Node.js Express - Local development server
- CORS Handling - Unified cross-origin request solution
- Session Management - Secure local storage and automatic expiration mechanism
🚀 Performance Optimization
- Resource Compression: Webpack + TerserPlugin, compression rate 65%+
- Service Worker: Offline caching and network status monitoring
- Image Optimization: WebP format support, automatic compression
- Code Splitting: Automatic separation of third-party libraries, reduced initial loading time
Detailed performance optimization documentation can be found in PERFORMANCE.md
Service Time Information
- Giffgaff Service Window: UK Time 04:30 – 21:30 (Europe/London)
- Operations Outside Window: May fail or be unstable, UI displays local time compared to UK time
📦 Deployment Methods
🌟 Recommended: Online Service
Use hosted version https://esim.cosr.eu.org
- No deployment configuration needed, ready to use
- Automatic updates, stable and reliable
- Full feature support
🔧 Self-hosted: Netlify
- Fork this repository to your GitHub account
- Connect GitHub repository in Netlify
- Build settings:
- Build command:
echo 'No build needed' - Publish directory:
.
- Build command:
- Deployment complete, get your custom domain
⚙️ Local Development
# Clone repository
git clone https://github.com/Silentely/eSIM-Tools.git
cd eSIM-Tools
# Install dependencies and start
npm install
npm start
# Access http://localhost:3000
❓ Frequently Asked Questions
Giffgaff Related
Q: Which activation method is recommended? A: Recommend using "SMS Verification Activation", fully automated process, just enter the SMS verification code to complete all steps.
Q: How long does SMS verification activation take? A: Usually 1-2 minutes. Send verification code → Enter verification code → Automatically complete booking, exchange and activation → Get QR code.
Q: Can manual activation still be used? A: Manual activation method was officially fixed and discontinued by Giffgaff on October 8, 2025. Please use SMS verification activation.
Q: What if I accidentally close the page? A: After re-login, the system will continue from the recoverable node. It is recommended to keep the page open until activation is complete.
Simyo Related
Q: Which phone number formats are supported? A: Only Dutch phone numbers (10-digit numbers starting with 06).
Q: What if I don't receive the verification code? A: You can choose the customer service verification code option, or check SMS blocking settings.
⚠️ Important Notes
Scope of Application
- Giffgaff: UK users only
- Simyo: Netherlands users only (06 prefix phone numbers)
Security and Privacy
- ✅ All data processing is done locally
- ✅ Does not store user credential information
- ✅ Recommended to use in secure network environment
- ✅ Open source and transparent, code auditable
📁 Project Structure
eSIM-Tools/
├── 📄 index.html # Main page
├── 🖥️ server.js # Local development server
├── 📦 package.json # Project configuration
├── 📂 src/ # Source code
│ ├── 🇬🇧 giffgaff/ # Giffgaff tools
│ ├── 🇳🇱 simyo/ # Simyo tools
│ ├── 🎨 styles/ # Style files
│ └── ⚙️ js/ # JavaScript modules
├── 🌐 netlify/ # Serverless functions
│ └── functions/ # API proxy
├── 📚 docs/ # Project documentation
│ ├── guides/ # User guides
│ ├── reference/ # Reference documents
│ └── fixes/ # Issue fixes
├── 🧪 tests/ # Test files
└── 🛠️ scripts/ # Deployment scripts
Cross-Origin Solutions
- 🌟 Recommended: Use online service esim.cosr.eu.org
- 🔧 Netlify Functions: Automatic API proxy
- 💻 Local Proxy: Node.js development server
- 📖 Detailed Explanation: CORS Solution Document
🧪 Testing
Project includes comprehensive test suite:
- Unit Tests - Core functions and modules testing
- Integration Tests - API calls and process testing
- End-to-End Tests - Complete user flow verification
# Run test suite
npm test
# Test in browser
open tests/test_giffgaff_esim.html
open tests/test_simyo_esim.html
🤝 Contribution Guidelines
Contributions and suggestions welcome!
How to Participate
- 🍴 Fork project repository
- 🌿 Create feature branch (
git checkout -b feature/AmazingFeature) - 💾 Commit changes (
git commit -m 'Add AmazingFeature') - 📤 Push branch (
git push origin feature/AmazingFeature) - 🔃 Create Pull Request
Development Standards
- Follow existing code style
- Add necessary test cases
- Update relevant documentation
📞 Support and Feedback
Having issues or suggestions?
- 📋 Submit Issue
- 📖 View Project Documentation
- 💬 Participate in community discussions
📄 License
- All code in this project, unless otherwise stated, is released under the MIT License.
- README.MD, wiki and other resources of this project are based on CC BY-NC-SA 4.0 which means you can copy and redistribute the content of this project,
but you must also provide author information and license statement. At the same time you cannot use this project for commercial purposes, according to our narrow interpretation
(additional clause), any profit-making activities are considered commercial use. - Please use this project in compliance with local laws and regulations.
⚖️ Disclaimer
This tool is for learning and personal use only. Please comply with relevant terms of service. The developer is not responsible for any problems arising from the use of this tool. Please use in compliance with local laws and regulations.


