32 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| module.exports = function (le) {
 | |
|   return function () {
 | |
|     var prefix = le.acmeChallengePrefix; // /.well-known/acme-challenge/:token
 | |
| 
 | |
|     return function (req, res, next) {
 | |
|       if (0 !== req.url.indexOf(prefix)) {
 | |
|         next();
 | |
|         return;
 | |
|       }
 | |
| 
 | |
|       var key = req.url.slice(prefix.length);
 | |
|       var hostname = req.hostname || (req.headers.host || '').toLowerCase().replace(/:*/, '');
 | |
| 
 | |
|       // TODO tpl copy?
 | |
|       le.challenger.getAsync(le, hostname, key).then(function (token) {
 | |
|         if (!token) {
 | |
|           res.status = 404;
 | |
|           res.send("Error: These aren't the tokens you're looking for. Move along.");
 | |
|           return;
 | |
|         }
 | |
| 
 | |
|         res.send(token);
 | |
|       }, function (/*err*/) {
 | |
|         res.status = 404;
 | |
|         res.send("Error: These aren't the tokens you're looking for. Move along.");
 | |
|       });
 | |
|     };
 | |
|   };
 | |
| };
 |