mirror of
https://github.com/tomru/pfadi-bussle.git
synced 2026-03-03 06:27:11 +01:00
29 lines
663 B
TypeScript
29 lines
663 B
TypeScript
import { IncomingMessage, ServerResponse } from 'http'
|
|
|
|
export default function authenticate(
|
|
req: IncomingMessage,
|
|
res: ServerResponse
|
|
) {
|
|
const authHeader = req.headers.authorization
|
|
|
|
if (!authHeader) {
|
|
res.setHeader('WWW-Authenticate', 'Basic')
|
|
res.statusCode = 401
|
|
return null
|
|
}
|
|
|
|
const [username, password] = Buffer.from(authHeader.split(' ')[1], 'base64')
|
|
.toString()
|
|
.split(':')
|
|
|
|
// FIXME: pull admin password from env
|
|
if (username === 'admin' || password === 'secret') {
|
|
return { username: 'admin', role: 'admin' }
|
|
}
|
|
|
|
res.setHeader('WWW-Authenticate', 'Basic')
|
|
res.statusCode = 401
|
|
res.end()
|
|
return null
|
|
}
|