Node.js Express Serve static files only with SIMPLE authentification

时间:2016-04-25 09:45:20

标签: node.js authentication express static

I've a problem since two days ago now. I just want an authentification on my static files. I look at a lot of post on the internet and nothing answer my question simply.

I try to use basic-auth, but it has no effect on my webpages.

I just want a simple dialog box before open my static pages that ask name and password and in my server.js just a thing like : if name == 'foo' and password =='pwd' then "send my static content".

But it seems to be not simple as it might be.

There is my code :

/***************************************************************************/
//Server Node.js
/** ************************************************************************ */

var express = require("express");
var app = express();
var bodyParser = require("body-parser");

// Routers
var router = express.Router();

var mongoose = require("mongoose");
mongoose.connect('mongodb://localhost:27017/mydb');
var conn = mongoose.connection;
var assert = require("assert");


var basicAuth = require('basic-auth');

var auth = function (req, res, next) {
  function unauthorized(res) {
    res.set('WWW-Authenticate', 'Basic realm=Authorization Required');
    return res.send(401);
  };

  var user = basicAuth(req);

  if (!user || !user.name || !user.pass) {
    return unauthorized(res);
  };

  if (user.name === 'foo' && user.pass === 'bar') {
    return next();
  } else {
    return unauthorized(res);
  };
};

app.use('/', auth);
app.use(express.static('public'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({"extended" : false}));

router.route("/data").get(function(req, res) {
// A non static route
});
}).post(function(req, res) {
// A non static route
});

router.route("/data/:id?").get(function(req, res) {
// A non static route
});

router.route("/remove/:id?").get(function(req, res) {
// A non static route
});

app.use('/', router);

app.listen(8080);
console.log("Listening to PORT 8080");

Thanks.

Have a nice day.

0 个答案:

没有答案