How bagusstwan/wifi-blockchain works
WiFi-Blockchain is a Laravel captive-portal system that grants hotspot access to registered, whitelisted wallet holders. The principal flow is client portal access, wallet-authentication submission, eligibility checks and session recording, then MikroTik IP-binding bypass; authentication attempts are audited. A separate Filament admin panel manages routers and provides operational views of wallets, sessions, logs, and access roles. The sampled verifier shows a required signature field but no cryptographic signature check. README capabilities such as walled-garden setup and MAC synchronization are documented, but their implementation is not present in the sampled source.
Main entry points: VerifyAuthController.php Auth Verifier · Router.php Router Config · WifiAuthController.php Portal Handler · Wallet.php Wallet Records
Components 16
Portal Authentication
- Portal Handler
app/Http/Controllers/WifiAuthController.php - Login View
resources/views/wifi/login.blade.php - Auth Verifier
app/Http/Controllers/Api/VerifyAuthController.php
Router Access
- MikroTik RouterOS
Application State
- Wallet Records
app/Models/Wallet.php - Active Sessions
app/Models/ActiveSession.php - Auth Logs
app/Models/AuthLog.php - Router Config
app/Models/Router.php - Application Database
Admin Dashboard
- Router Management
app/Filament/Resources/RouterResource.php - Session Management
app/Filament/Resources/ActiveSessionResource.php - Auth Log Management
app/Filament/Resources/AuthLogResource.php - Wallet Management
app/Filament/Resources/WalletResource.php - Dashboard Insights
app/Filament/Widgets
Other components
- WiFi Client
- Administrator
Connections 18
- WiFi Client → Portal Handler: requests portal
- Portal Handler → Login View: renders login
- WiFi Client → Auth Verifier: submits credentials
- Auth Verifier → Wallet Records: checks wallet
- Auth Verifier → Active Sessions: upserts session
- Auth Verifier → Auth Logs: records outcome
- Auth Verifier → Router Config: loads active router
- Wallet Records → Application Database: reads
- Active Sessions → Application Database: writes
- Auth Logs → Application Database: writes
- Router Config → Application Database: reads
- Auth Verifier → MikroTik RouterOS: queries binding; adds bypass
- Administrator → Router Management: manages routers
- Administrator → Session Management: reviews sessions
- Administrator → Auth Log Management: reviews auth logs
- Administrator → Wallet Management: manages wallets
- Administrator → Dashboard Insights: views metrics
- Router Management → Router Config: manages records