Skip to content

Latest commit

 

History

History
91 lines (63 loc) · 3.02 KB

README.md

File metadata and controls

91 lines (63 loc) · 3.02 KB

passport-http-encrypted-token

npm Build Status Code Climate Coverage Status

HTTP Encrypted Token authentication strategy for Passport.

This module lets you authenticate HTTP requests using encrypted tokens in your Node.js applications. Encrypted_token is a custom authentication scheme used by Professional Information Business (PIB) group in Dow Jones. Encrypted tokens are typically used protect API endpoints, and are issued using Dow Jones Session server.

By plugging into Passport, encrypted token support can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express and Koa.

This work is based on passport-http-bearer.

Install

$ npm install passport-http-encrypted-token

Usage

Configure Strategy

The HTTP Encrypted token authentication strategy authenticates users using a encrypted_token.
The strategy requires a verify callback, which accepts that credential and calls done providing a user.

const EncryptedTokenStrategy = require('passport-http-encrypted-token').Strategy

passport.use(new EncryptedTokenStrategy(
  function(token, done) {
    User.findOne({ token: token }, function (err, user) {
      if (err) { return done(err) }
      if (!user) { return done(null, false) }
      return done(null, user)
    })
  }
))

Authenticate Requests

Use passport.authenticate(), specifying the 'Encrypted_token' strategy, to authenticate requests. Requests containing encrypted tokens do not require session support, so the session option can be set to false.

For example, as route middleware in an Express application:

app.get('/profile', 
  passport.authenticate('Encrypted_token', { session: false }),
  function(req, res) {
    res.json(req.user)
  }
)

Tests

$ npm install
$ npm test

Example

Use curl to send an authenticated request.

$ curl -H "Authorization: Encrypted_token 123456789" http://127.0.0.1:3000/

Credits

License

ISC

Released 2016 by Hrusikesh Panda @ Dow Jones