UNPKG

passport-pnoi

Version:

OAuth2 client authentication for PN:OI using passport.js

61 lines (42 loc) 1.9 kB
# Passport.js authentication for PN:OI [Passport](http://passportjs.org/) strategy for authenticating with [PN:OI](https://pnoi.net/) using the OAuth 2.0 API. This module lets you authenticate using PN:OI in your Node.js applications. By plugging into Passport, PN:OI authentication can be easily and unobtrusively integrated into any application or framework that supports [Connect](http://www.senchalabs.org/connect/)-style middleware, including [Express](http://expressjs.com/). ## Install ``` npm install passport-pnoi ``` ## Usage #### Configure Strategy The PN:OI authentication strategy authenticates users using a PN:OI account 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, and callback URL. ``` var OAuth2Strategy = require("passport-crudr").Strategy; passport.use(new OAuth2Strategy({ clientID: CLIENT_ID, clientSecret: CLIENT_SECRET, callbackURL: "http://www.example.net/auth/crudr/callback" }, function(accessToken, refreshToken, profile, done) { User.findOrCreate({ providerId: profile.id }, function (err, user) { return done(err, user); }); } )); ``` #### Authenticate Requests Use `passport.authenticate()`, specifying the `'pnoi'` strategy, to authenticate requests. For example, as route middleware in an [Express](http://expressjs.com/) application: ``` app.get('/auth/pnoi', passport.authenticate('pnoi')); app.get('/auth/pnoi/callback', passport.authenticate('pnoi', { failureRedirect: '/login' }), function(req, res) { // Successful authentication, redirect home. res.redirect('/'); }); ``` ## Credits Initiated by [Makis Tracend](http://github.com/tracend) Part of [PN:OI](http://pnoi.net/) by [K&D Interactive](http://kdi.co/) Released under the [MIT license](http://makesites.org/licenses/MIT)