passport-genius
v0.2.0
Published
OAuth 2.0 authentication strategy for the Genius API
Maintainers
Readme
passport-genius
OAuth 2.0 authentication strategy for Genius.
Overview
This module extends passport-oauth2. It enables users to sign into third-party websites and apps using their Genius account.
Audience
Developers can plug this library into any Node.js application or framework that supports Connect-style middleware, including Express. The Genius strategy serves as a user authentication method for social login, which eliminates the need to manage usernames and passwords.
Install
$ npm install passport-geniusUsage
Register Application
Before your application can make use of Genius's authentication system, you must first register your application. Visit the Genius API Client management page and create an API client.
After registration, Genius will issue your client ID and secret, which are used to identify your app. You will also need to configure a redirect URI, which matches the callback route in your application.
Configure Strategy
Once you've registered your application, the strategy needs to be configured with your application's client ID and secret, along with its OAuth 2.0 redirect endpoint.
const passport = require('passport');
const GeniusStrategy = require('passport-genius');
passport.use(new GeniusStrategy({
clientID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
callbackURL: "http://0.0.0.0:8080/auth/genius/callback",
},
function(accessToken, refreshToken, profile, cb) {
cb(null, profile);
}
));Scopes
Your application can request one or more scopes using the scope option. If no scope is provided, the Genius strategy defaults to the me scope. Use a string array to supply multiple scopes.
passport.use(new GeniusStrategy({
scope: 'create_annotation',
// scope: ['manage_annotation', 'vote'],
clientID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
...Authenticate Requests
Use passport.authenticate(), specifying the 'genius' strategy, to
authenticate requests.
For example, as route middleware in an Express application:
app.get('/auth/example',
passport.authenticate('genius'));
app.get('/auth/example/callback',
passport.authenticate('genius', { failureRedirect: '/login' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});