Passport strategy for authenticating with Bungie using the OAuth 2.0 API. This package was adopted from Fred Chien's excellent passport-github2 Strategy.
This module lets you authenticate using Bungie in your Node.js applications. By plugging into Passport, Bungie authentication can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express.
$ npm install passport-bungie
The Bungie authentication strategy authenticates users using a Bungie
application and OAuth 2.0 tokens.
The strategy requires a verify
callback, which accepts these credentials
and calls done
providing a user, as well as options
specifying a
client ID, client secret, an API Key, and callback URL.
Bungie requires the callback URL you set in the application to use https.
You can not use http://localhost
even in development. You app, even in
development, must use https. You can solve this however you like. The
solution I found with the least friction was ngrok.
You can use a free account for development and easily setup a proxy.
passport.use(
new GitHubStrategy(
{
clientID: BUNGIE_CLIENT_ID,
clientSecret: BUNGIE_CLIENT_SECRET,
callbackURL: 'https://127.0.0.1:3000/auth/bungie/callback',
customHeaders: { 'X-API-KEY': BUNGIE_APIKEY },
},
function (accessToken, refreshToken, profile, done) {
User.findOrCreate({ bungie: memberhipId }, function (err, user) {
return done(err, user);
});
}
)
);
Use passport.authenticate()
, specifying the 'bungie'
strategy, to
authenticate requests.
For example, as route middleware in an Express application:
app.get('/auth/bungie', passport.authenticate('bungie'));
app.get(
'/auth/bungie/callback',
passport.authenticate('bungie', { failureRedirect: '/login' }),
function (req, res) {
// Successful authentication, redirect home.
res.redirect('/');
}
);
For a complete, working example, refer to the login example.
$ npm install --dev
$ make test
Copyright (c) 2011-2013 Jared Hanson <http://jaredhanson.net/>