|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 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
- }}
|