update remote access example
This commit is contained in:
		
							parent
							
								
									d2aa9394aa
								
							
						
					
					
						commit
						6eae454bed
					
				| @ -1,60 +0,0 @@ | |||||||
| 'use strict'; |  | ||||||
| 
 |  | ||||||
| var express = require('express'); |  | ||||||
| var basicAuth = require('express-basic-auth'); |  | ||||||
| var crypto = require('crypto'); |  | ||||||
| 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 <a href="/">Home</a>'; |  | ||||||
|   } |  | ||||||
| }); |  | ||||||
| 
 |  | ||||||
| app.get('/', function (req, res) { |  | ||||||
|   res.setHeader('Content-Type', 'text/html; charset=utf-8'); |  | ||||||
|   res.end( |  | ||||||
|     '<a href="/browse/">View Files</a>' |  | ||||||
|   + '  |  ' |  | ||||||
|   + '<a href="/logout/">Logout</a>' |  | ||||||
|   ); |  | ||||||
| }); |  | ||||||
| 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   |   <a href="/">Home</a>'); |  | ||||||
| }); |  | ||||||
| app.use('/browse', function (req, res, next) { |  | ||||||
|   myAuth(req, res, next); |  | ||||||
| }); |  | ||||||
| app.use('/browse', function (req, res, next) { |  | ||||||
|   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'); |  | ||||||
| }); |  | ||||||
| 
 |  | ||||||
| console.log(''); |  | ||||||
| console.log(''); |  | ||||||
| console.log('\t' + secret); |  | ||||||
| console.log(''); |  | ||||||
| console.log("\tShhhh... It's a secret to everybody!"); |  | ||||||
| console.log(''); |  | ||||||
| console.log(''); |  | ||||||
| 
 |  | ||||||
| module.exports = app; |  | ||||||
							
								
								
									
										95
									
								
								examples/remote-access.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								examples/remote-access.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,95 @@ | |||||||
|  | 'use strict'; | ||||||
|  | 
 | ||||||
|  | //
 | ||||||
|  | // WARNING: Not for noobs
 | ||||||
|  | // Try the simple example first
 | ||||||
|  | //
 | ||||||
|  | 
 | ||||||
|  | //
 | ||||||
|  | // This demo is used with tunnel-server.js and tunnel-client.js
 | ||||||
|  | //
 | ||||||
|  | 
 | ||||||
|  | var crypto = require('crypto'); | ||||||
|  | 
 | ||||||
|  | var email = 'john.doe@gmail.com'; | ||||||
|  | var domains = [ 'example.com' ]; | ||||||
|  | var agreeLeTos = true; | ||||||
|  | var secret = crypto.randomBytes(16).toString('hex'); | ||||||
|  | 
 | ||||||
|  | require('../').create({ | ||||||
|  |   version: 'draft-11' | ||||||
|  | 
 | ||||||
|  |   // WARNING: This runs PRODUCTION by default.
 | ||||||
|  |   // Uncomment staging instead if you're a first-timer.
 | ||||||
|  | , server: 'https://acme-v02.api.letsencrypt.org/directory' // production
 | ||||||
|  | //, server: 'https://acme-staging-v02.api.letsencrypt.org/directory' // staging
 | ||||||
|  | 
 | ||||||
|  | , email: email | ||||||
|  | , agreeTos: agreeLeTos | ||||||
|  | , approveDomains: domains | ||||||
|  | , configDir: require('path').join(require('os').homedir(), 'acme', 'etc') | ||||||
|  | , app: remoteAccess(secret) | ||||||
|  | //, debug: true
 | ||||||
|  | }).listen(3000, 8443); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | function remoteAccess(secret) { | ||||||
|  |   var express = require('express'); | ||||||
|  |   var basicAuth = require('express-basic-auth'); | ||||||
|  |   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 myAuth = basicAuth({ | ||||||
|  |     users: { 'root': secret, 'user': secret } | ||||||
|  |   , challenge: true | ||||||
|  |   , realm: realm | ||||||
|  |   , unauthorizedResponse: function (/*req*/) { | ||||||
|  |       return 'Unauthorized <a href="/">Home</a>'; | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   app.get('/', function (req, res) { | ||||||
|  |     res.setHeader('Content-Type', 'text/html; charset=utf-8'); | ||||||
|  |     res.end( | ||||||
|  |       '<a href="/browse/">View Files</a>' | ||||||
|  |     + '  |  ' | ||||||
|  |     + '<a href="/logout/">Logout</a>' | ||||||
|  |     ); | ||||||
|  |   }); | ||||||
|  |   app.use('/logout', function (req, res) { | ||||||
|  |     res.setHeader('Content-Type', 'text/html; charset=utf-8'); | ||||||
|  |     res.setHeader('WWW-Authenticate', 'Basic realm="' + realm + '"'); | ||||||
|  |     res.statusCode = 401; | ||||||
|  |     //res.setHeader('Location', '/');
 | ||||||
|  |     res.end('Logged out   |   <a href="/">Home</a>'); | ||||||
|  |   }); | ||||||
|  |   app.use('/browse', myAuth); | ||||||
|  |   app.use('/browse', function (req, res, next) { | ||||||
|  |     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'); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   console.log(''); | ||||||
|  |   console.log(''); | ||||||
|  |   console.log('Usernames are\n'); | ||||||
|  |   console.log('\troot'); | ||||||
|  |   console.log('\tuser'); | ||||||
|  |   console.log(''); | ||||||
|  |   console.log('Password (for both) is\n'); | ||||||
|  |   console.log('\t' + secret); | ||||||
|  |   console.log(''); | ||||||
|  |   console.log("Shhhh... It's a secret to everybody!"); | ||||||
|  |   console.log(''); | ||||||
|  |   console.log(''); | ||||||
|  | 
 | ||||||
|  |   return app; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user