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
- Jared Hanson (passport bearer auth implementation)
License
Released 2016 by Hrusikesh Panda @ Dow Jones