Sha256: 9dc72665d8c031ddf8efce61f000f1753a6ed7af0a05b72f7b0fba3f8091cb80

Contents?: true

Size: 1.93 KB

Versions: 19

Compression:

Stored size: 1.93 KB

Contents

// Load modules

var Http = require('http');
var Request = require('request');
var Hawk = require('../lib');


// Declare internals

var internals = {
    credentials: {
        dh37fgj492je: {
            id: 'dh37fgj492je',                                             // Required by Hawk.client.header 
            key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn',
            algorithm: 'sha256',
            user: 'Steve'
        }
    }
};


// Credentials lookup function

var credentialsFunc = function (id, callback) {

    return callback(null, internals.credentials[id]);
};


// Create HTTP server

var handler = function (req, res) {

    Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials, artifacts) {

        var payload = (!err ? 'Hello ' + credentials.user + ' ' + artifacts.ext : 'Shoosh!');
        var headers = {
            'Content-Type': 'text/plain',
            'Server-Authorization': Hawk.server.header(artifacts, { payload: payload, contentType: 'text/plain' })
        };

        res.writeHead(!err ? 200 : 401, headers);
        res.end(payload);
    });
};

Http.createServer(handler).listen(8000, '127.0.0.1');


// Send unauthenticated request

Request('http://127.0.0.1:8000/resource/1?b=1&a=2', function (error, response, body) {

    console.log(response.statusCode + ': ' + body);
});


// Send authenticated request

var header = Hawk.client.header('http://127.0.0.1:8000/resource/1?b=1&a=2', 'GET', { credentials: internals.credentials.dh37fgj492je, ext: 'and welcome!' });
var options = {
    uri: 'http://127.0.0.1:8000/resource/1?b=1&a=2',
    method: 'GET',
    headers: {
        authorization: header.field
    }
};


Request(options, function (error, response, body) {

    var isValid = Hawk.client.authenticate(response, header.artifacts, { payload: body });
    console.log(response.statusCode + ': ' + body + (isValid ? ' (valid)' : ' (invalid)'));
    process.exit(0);
});


Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
ela-4.1.6 node_modules/hawk/example/usage.js
ela-4.1.5 node_modules/hawk/example/usage.js
ela-4.1.4 node_modules/hawk/example/usage.js
ela-4.1.3 node_modules/hawk/example/usage.js
ela-4.1.2 node_modules/hawk/example/usage.js
ela-4.1.1 node_modules/hawk/example/usage.js
ela-4.1.0 node_modules/hawk/example/usage.js
ela-4.0.0 node_modules/hawk/example/usage.js
ela-3.4.3 node_modules/hawk/example/usage.js
ela-3.4.2 node_modules/hawk/example/usage.js
ela-3.4.0 node_modules/hawk/example/usage.js
ela-3.3.1 node_modules/hawk/example/usage.js
ela-3.3.0 node_modules/hawk/example/usage.js
ela-3.2.0 node_modules/hawk/example/usage.js
ela-3.1.1 node_modules/hawk/example/usage.js
ela-3.1.0 node_modules/hawk/example/usage.js
ela-3.0.0 node_modules/hawk/example/usage.js
ela-2.0.0 node_modules/hawk/example/usage.js
ela-1.1.0 node_modules/hawk/example/usage.js