passport-asana
Passport Authentication Strategy for Asana's API using OAuth2
Installation
$ npm install passport-asana
Usage
Authorization (the much more likely usecase)
Authentication Configuration Strategy
The Asana authentication strategy authenticates users using an Asana account and
OAuth 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, and callback URL.
passport.use(new AsanaStrategy({
clientID: '1234567890123',
clientSecret: '5ddf23ae77cbe6bff02430f8f37c4900'
callbackURL: 'https://www.example.com/auth/asana/callback'
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate({ userId: profile.id }, function (err, user) {
return done(err, user);
});
}
));
Authenticate Requests
Use passport.authenticate()
, specifying the 'Asana'
strategy, to
authenticate requests.
For example, as route middleware in an Express application:
app.get('/auth/asana',
passport.authenticate('Asana'),
function(req, res){
// The request will be redirected to asana.com for authentication, so this
// function will not be called.
});
app.get('/auth/asana/callback',
passport.authenticate('Asana', { failureRedirect: '/login' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});