const fs = require('fs')
const http = require('http')
const path = require('path')
// The map of usernames to their passwords.
// Don't ever store raw passwords in a real application!
const passwords = new Map()
.set('alice', '123456')
.set('bob', 'supersecretpassword')
http.createServer((req, res) => {
// Check the provided `user` and `password` headers
const password = passwords.get(req.headers.user)
if (password === undefined || password !== req.headers.password) {
res.statusCode = 403 // Forbidden
res.end()
return
}
// If the login is valid, send the file
const readStream = fs.createReadStream(path.join('files', req.url))
readStream.on('error', _ => {
res.write('File not found')
res.end()
})
readStream.pipe(res)
}).listen(80)
-
Caleb C. Sander authored25831608