Spaces:
Runtime error
Runtime error
| 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 | |
| }} | |