twitst4tz

twitter statistics web application
Log | Files | Refs | README | LICENSE

README.md (1594B)


      1 # node-http-signature
      2 
      3 node-http-signature is a node.js library that has client and server components
      4 for Joyent's [HTTP Signature Scheme](http_signing.md).
      5 
      6 ## Usage
      7 
      8 Note the example below signs a request with the same key/cert used to start an
      9 HTTP server. This is almost certainly not what you actually want, but is just
     10 used to illustrate the API calls; you will need to provide your own key
     11 management in addition to this library.
     12 
     13 ### Client
     14 
     15 ```js
     16 var fs = require('fs');
     17 var https = require('https');
     18 var httpSignature = require('http-signature');
     19 
     20 var key = fs.readFileSync('./key.pem', 'ascii');
     21 
     22 var options = {
     23   host: 'localhost',
     24   port: 8443,
     25   path: '/',
     26   method: 'GET',
     27   headers: {}
     28 };
     29 
     30 // Adds a 'Date' header in, signs it, and adds the
     31 // 'Authorization' header in.
     32 var req = https.request(options, function(res) {
     33   console.log(res.statusCode);
     34 });
     35 
     36 
     37 httpSignature.sign(req, {
     38   key: key,
     39   keyId: './cert.pem'
     40 });
     41 
     42 req.end();
     43 ```
     44 
     45 ### Server
     46 
     47 ```js
     48 var fs = require('fs');
     49 var https = require('https');
     50 var httpSignature = require('http-signature');
     51 
     52 var options = {
     53   key: fs.readFileSync('./key.pem'),
     54   cert: fs.readFileSync('./cert.pem')
     55 };
     56 
     57 https.createServer(options, function (req, res) {
     58   var rc = 200;
     59   var parsed = httpSignature.parseRequest(req);
     60   var pub = fs.readFileSync(parsed.keyId, 'ascii');
     61   if (!httpSignature.verifySignature(parsed, pub))
     62     rc = 401;
     63 
     64   res.writeHead(rc);
     65   res.end();
     66 }).listen(8443);
     67 ```
     68 
     69 ## Installation
     70 
     71     npm install http-signature
     72 
     73 ## License
     74 
     75 MIT.
     76 
     77 ## Bugs
     78 
     79 See <https://github.com/joyent/node-http-signature/issues>.