surls

A connect middleware to ensure requests are switched between HTTP and HTTPS properly

npm install surls
3 downloads in the last week
4 downloads in the last month

surls

surls is a connect middleware to ensure requests are switched between HTTP and HTTPS based on a config.

Installation

npm

npm install surls

GitHub

npm install https://github.com/martinrue/surls/tarball/master

Configuration

The first thing you must do is call configure to specify which URLs should be secured. You can optionally specify the HTTP and HTTPS port numbers to use.

var surls = require('surls');

surls.configure(['/login', '/resetpassword'], { httpPort: 1234, httpsPort: 12345 });

URLs

URLs that are to be forced to HTTPS should be specified in the array passed to configure. You can specify an exact URL match using a string or provide a regex that will be tested against the current request URL. You can also use an asterisk to indicate that all URLs should be forced to HTTPS.

Examples

Only requests to /login and /account will be forced to HTTPS, all other requests will be forced to HTTP.

surls.configure(['/login', '/account']);

Requests to /secure0, /secure1, ... /secure9 will be forced to HTTPS, all other requests will be forced to HTTP.

surls.configure([/secure[0-9]/]);

All requests will be forced to HTTPS.

surls.configure(['*']);

Example Application

var fs = require('fs');
var http = require('http');
var https = require('https');
var express = require('express');
var surls = require('surls');

var options = {
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.crt')
};

surls.configure([/secure[0-9]/], { httpPort: 1234, httpsPort: 12345 });

var app = express();

app.configure(function() {
  app.use(surls.secureUrls);
});

app.get('/', function(req, res) {
  res.send('index');
});

app.get('/secure1', function(req, res) {
  res.send('secure 1');
});

app.get('/secure2', function(req, res) {
  res.send('secure 2');
});

app.get('/secure3', function(req, res) {
  res.send('secure 3');
});

app.get('/securez', function(req, res) {
  res.send('secure Z');
});

http.createServer(app).listen(1234);
https.createServer(options, app).listen(12345);
npm loves you