Spaces:
Runtime error
Runtime error
File size: 1,783 Bytes
8775c1a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | const path = require("path");
const express = require("express");
const passport = require('passport');
const Strategies = require("passport-http");
const DigestStrategy = Strategies.DigestStrategy;
const BasicStrategy = Strategies.BasicStrategy;
module.exports = { getApp(method) {
const app = express();
const User = {
findOne(user, callback) {
return callback(null, { password: "test", username: user.username });
}
}
passport.use(new BasicStrategy(
function(userid, password, done) {
User.findOne({ username: userid }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (user.password != password) { return done(null, false); }
return done(null, user);
});
}
));
const options = {}
if (method) options.qop = method
passport.use(new DigestStrategy(options,
function(username, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
return done(null, user, user.password);
});
},
function(params, done) {
// validate nonces as necessary
done(null, true)
}
));
// http basic authentication
app.get('/basic',
passport.authenticate('basic', { session: false }),
function(req, res) {
res.json(req.user);
});
// http digest authentication
app.get('/auth',
passport.authenticate('digest', { session: false }),
function(req, res) {
res.json(req.user);
});
// app.use("/static", express.static(path.join(__dirname, './static')));
// app.get('/', (req, res) => res.sendFile("/home/stefan/digest/main.html") );
// app.listen(3222, "0.0.0.0");
return app
}}
|