passport-http-encrypted-token
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