You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# node-http-signature
node-http-signature is a node.js library that has client and server components for Joyent's [HTTP Signature Scheme](http_signing.md).
## Usage
Note the example below signs a request with the same key/cert used to start an HTTP server. This is almost certainly not what you actually want, but is just used to illustrate the API calls; you will need to provide your own key management in addition to this library.
### Client
```js var fs = require('fs'); var https = require('https'); var httpSignature = require('http-signature');
var key = fs.readFileSync('./key.pem', 'ascii');
var options = { host: 'localhost', port: 8443, path: '/', method: 'GET', headers: {} };
// Adds a 'Date' header in, signs it, and adds the // 'Authorization' header in. var req = https.request(options, function(res) { console.log(res.statusCode); });
httpSignature.sign(req, { key: key, keyId: './cert.pem' });
req.end(); ```
### Server
```js var fs = require('fs'); var https = require('https'); var httpSignature = require('http-signature');
var options = { key: fs.readFileSync('./key.pem'), cert: fs.readFileSync('./cert.pem') };
https.createServer(options, function (req, res) { var rc = 200; var parsed = httpSignature.parseRequest(req); var pub = fs.readFileSync(parsed.keyId, 'ascii'); if (!httpSignature.verifySignature(parsed, pub)) rc = 401;
res.writeHead(rc); res.end(); }).listen(8443); ```
## Installation
npm install http-signature
## License
MIT.
## Bugs
See <https://github.com/joyent/node-http-signature/issues>.
|