UNPKG

zcloudcmd

Version:

### [Main][MainURL] [Blog][BlogURL] Live([Heroku][HerokuURL], [Now][NowURL])

43 lines (30 loc) 958 B
'use strict'; const httpAuth = require('http-auth'); const criton = require('criton'); const currify = require('currify'); const middle = currify(_middle); const config = require('./config'); module.exports = () => { const auth = httpAuth.basic({ realm: 'Cloud Commander', }, check); return middle(auth); }; function _middle(authentication, req, res, next) { const is = config('auth'); if (!is) return next(); const success = () => next(/* success */); authentication.check(req, res, success); } function check(username, password, callback) { const BAD_CREDENTIALS = false; const name = config('username'); const pass = config('password'); const algo = config('algo'); if (!password) return callback(BAD_CREDENTIALS); const sameName = username === name; const samePass = pass === criton(password, algo); callback(sameName && samePass); }