UNPKG

edge-core-js

Version:

Edge account & wallet management library

34 lines (26 loc) 918 B
import { Buffer } from 'buffer' import http from 'http' import { createProxyServer } from 'http-proxy' const proxy = createProxyServer({}) // Rust WebDAV server running on port 3000 const WEBDAV_TARGET = 'http://localhost:3000' const OTHER_TARGET = 'http://localhost:4000' const AUTH_USER = 'william' const AUTH_PASS = 'hunter2' const mainServer = http.createServer((req, res) => { if (isAuthorized(req)) { proxy.web(req, res, { target: WEBDAV_TARGET }) } else { proxy.web(req, res, { target: OTHER_TARGET }) } }) mainServer.listen(8080, () => { console.log('Node proxy running on port 8080') }) function isAuthorized(req) { const authHeader = req.headers.authorization if (!authHeader || !authHeader.startsWith('Basic ')) return false const encoded = authHeader.slice(6) const decoded = Buffer.from(encoded, 'base64').toString('utf8') return decoded === `${AUTH_USER}:${AUTH_PASS}` }