webssh2/app/routes.js

32 lines
No EOL
813 B
JavaScript

// server
// /app/routes.js
var express = require('express');
var router = express.Router();
var handleConnection = require('./connectionHandler');
var basicAuth = require('basic-auth');
function auth(req, res, next) {
var credentials = basicAuth(req);
if (!credentials) {
res.setHeader('WWW-Authenticate', 'Basic realm="WebSSH2"');
return res.status(401).send('Authentication required.');
}
req.sshCredentials = credentials;
next();
}
// Scenario 1: No auth required
router.get('/', function(req, res) {
handleConnection(req, res);
});
// Scenario 2: Auth required
router.get('/host/:host', auth, function(req, res) {
handleConnection(req, res, {
host: req.params.host,
username: req.sshCredentials.name,
password: req.sshCredentials.pass
});
});
module.exports = router;