passport-thinkful
Thinkful's authentication strategy for Passport.
This module authenticates requests intended for Thinkful services. It wraps http-passport-bearer with a JWT verification step.
Install
$ npm install passport-thinkful
Usage
Configure Strategy
passport.use(new ThinkfulStrategy(
  { secret: publicPrivateSigningKey },
  function (req, user, done) {
    request.get(USER_API_ENDPOINT)
      .set('Authorization', req.headers.authorization)
      .end(function (err, res) {
        if (err) { return done(err); }
        if (!res.body || !res.body.user) { return done(null, false); }
        return done(null, res.body.user);
      });
  }
));
Authenticate Requests
Use passport.authenticate('thinkful') to authenticate requests. JWT authorization tokens negate the need for sessions, so the session option should be set to false.
An Express route middleware example:
app.get('/users/me',
  passport.authenticate('thinkful', { session: false }),
  function(req, res) { res.json(req.user); }
);