Spaces:
Configuration error
Configuration error
| # 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', | |
| keyPassphrase: 'secret' // (optional) | |
| }); | |
| 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>. | |