Skip to content

moneybaggjoe/passport-genius

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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-genius

Usage

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('/');
  });

License

MIT

Releases

No releases published

Packages

 
 
 

Contributors