diff --git a/examples/fshare.js b/examples/fshare.js index 3bf2320..55fe818 100644 --- a/examples/fshare.js +++ b/examples/fshare.js @@ -1,29 +1,49 @@ 'use strict'; var express = require('express'); -var app = express(); var basicAuth = require('express-basic-auth'); var crypto = require('crypto'); -var secret = crypto.randomBytes(16).toString('hex'); var serveIndex = require('serve-index'); + var rootIndex = serveIndex('/', { hidden: true, icons: true, view: 'details' }); var rootFs = express.static('/', { dotfiles: 'allow', redirect: true, index: false }); + var userIndex = serveIndex(require('os').homedir(), { hidden: true, icons: true, view: 'details' }); var userFs = express.static(require('os').homedir(), { dotfiles: 'allow', redirect: true, index: false }); + +var app = express(); +var realm = 'Login Required'; +var secret = crypto.randomBytes(16).toString('hex'); + var myAuth = basicAuth({ users: { 'root': secret, 'user': secret } +, challenge: true +, realm: realm +, unauthorizedResponse: function (/*req*/) { + return 'Unauthorized Home'; + } }); app.get('/', function (req, res) { res.setHeader('Content-Type', 'text/html; charset=utf-8'); - res.end('
'); + res.end( + 'View Files' + + '  |  ' + + 'Logout' + ); +}); +app.use('/logout', function (req, res) { + res.setHeader('Content-Type', 'text/html; charset=utf-8'); + res.setHeader('WWW-Authenticate', 'Basic realm="' + realm + '"'); + res.status(401); + res.statusCode = 401; + //res.setHeader('Location', '/'); + res.end('Logged out   |   Home'); }); app.use('/browse', function (req, res, next) { - console.log('trying to auth browse'); myAuth(req, res, next); }); app.use('/browse', function (req, res, next) { - console.log('trying to get browse', req.url); if ('root' === req.auth.user) { rootFs(req, res, function () { rootIndex(req, res, next); }); return; } if ('user' === req.auth.user) { userFs(req, res, function () { userIndex(req, res, next); }); return; } res.end('Sad Panda'); diff --git a/package.json b/package.json index 3d532f0..f86c4eb 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,9 @@ "redirect-https": "^1.1.5" }, "devDependencies": { - "express": "^4.16.3" + "express": "^4.16.3", + "express-basic-auth": "^1.1.5", + "serve-index": "^1.9.1" }, "scripts": { "test": "node examples/serve.js"