Added example on how to use with koa.
This commit is contained in:
parent
9cae5bf82e
commit
7073ce4939
50
README.md
50
README.md
|
@ -1,6 +1,6 @@
|
||||||
# LetsEncrypt Express
|
# LetsEncrypt Express
|
||||||
|
|
||||||
Free SSL and managed or automatic HTTPS for node.js with Express, Connect, and other middleware systems.
|
Free SSL and managed or automatic HTTPS for node.js with Express, Koa, Connect, and other middleware systems.
|
||||||
|
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
@ -105,20 +105,20 @@ app.use('/', function (req, res) {
|
||||||
|
|
||||||
lex.create({
|
lex.create({
|
||||||
configDir: './letsencrypt.config' // ~/letsencrypt, /etc/letsencrypt, whatever you want
|
configDir: './letsencrypt.config' // ~/letsencrypt, /etc/letsencrypt, whatever you want
|
||||||
|
|
||||||
, onRequest: app // your express app (or plain node http app)
|
, onRequest: app // your express app (or plain node http app)
|
||||||
|
|
||||||
, letsencrypt: null // you can provide you own instance of letsencrypt
|
, letsencrypt: null // you can provide you own instance of letsencrypt
|
||||||
// if you need to configure it (with an agreeToTerms
|
// if you need to configure it (with an agreeToTerms
|
||||||
// callback, for example)
|
// callback, for example)
|
||||||
|
|
||||||
, approveRegistration: function (hostname, cb) { // PRODUCTION MODE needs this function, but only if you want
|
, approveRegistration: function (hostname, cb) { // PRODUCTION MODE needs this function, but only if you want
|
||||||
// automatic registration (usually not necessary)
|
// automatic registration (usually not necessary)
|
||||||
// renewals for registered domains will still be automatic
|
// renewals for registered domains will still be automatic
|
||||||
cb(null, {
|
cb(null, {
|
||||||
domains: [hostname]
|
domains: [hostname]
|
||||||
, email: 'user@example.com'
|
, email: 'user@example.com'
|
||||||
, agreeTos: true // you
|
, agreeTos: true // you
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).listen([80], [443, 5001], function () {
|
}).listen([80], [443, 5001], function () {
|
||||||
|
@ -126,6 +126,46 @@ lex.create({
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Using with Koa
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// Note: using staging server url, remove .testing() for production
|
||||||
|
var lex = require('letsencrypt-express').testing();
|
||||||
|
var koa = require('koa');
|
||||||
|
var app = koa();
|
||||||
|
|
||||||
|
|
||||||
|
app.use(function *(){
|
||||||
|
this.body = 'Hello World';
|
||||||
|
});
|
||||||
|
|
||||||
|
lex.create({
|
||||||
|
configDir: './letsencrypt.config' // ~/letsencrypt, /etc/letsencrypt, whatever you want
|
||||||
|
|
||||||
|
, onRequest: app.callback() // your koa app callback
|
||||||
|
|
||||||
|
, letsencrypt: null // you can provide you own instance of letsencrypt
|
||||||
|
// if you need to configure it (with an agreeToTerms
|
||||||
|
// callback, for example)
|
||||||
|
|
||||||
|
, approveRegistration: function (hostname, cb) { // PRODUCTION MODE needs this function, but only if you want
|
||||||
|
// automatic registration (usually not necessary)
|
||||||
|
// renewals for registered domains will still be automatic
|
||||||
|
cb(null, {
|
||||||
|
domains: [hostname]
|
||||||
|
, email: 'user@example.com'
|
||||||
|
, agreeTos: true // you
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).listen([], [4443], function () {
|
||||||
|
var server = this;
|
||||||
|
var protocol = ('requestCert' in server) ? 'https': 'http';
|
||||||
|
console.log("Listening at " + protocol + '://localhost:' + this.address().port);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
### More Options Exposed
|
### More Options Exposed
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
@ -180,7 +220,7 @@ function onConnection(ws) {
|
||||||
var location = url.parse(ws.upgradeReq.url, true);
|
var location = url.parse(ws.upgradeReq.url, true);
|
||||||
// you might use location.query.access_token to authenticate or share sessions
|
// you might use location.query.access_token to authenticate or share sessions
|
||||||
// or ws.upgradeReq.headers.cookie (see http://stackoverflow.com/a/16395220/151312)
|
// or ws.upgradeReq.headers.cookie (see http://stackoverflow.com/a/16395220/151312)
|
||||||
|
|
||||||
ws.on('message', function incoming(message) {
|
ws.on('message', function incoming(message) {
|
||||||
console.log('received: %s', message);
|
console.log('received: %s', message);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue