Skip to content

Nucleus-Inc/passport-mock-strategies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

passport-mock-strategies

Build Status dependencies Status

Mock Passport.js strategies for testing and development

Strategies

The following strategies are avaiable for mocking:

  • OAuth2Strategy

    The OAuth2Strategy mocks any OAuth2 Passport lib that expect req (optional), accessToken, refreshToken, profile, done in verify callback. This strategy also mocks the callbackUrl redirect, but it can be easily disabled for mobile based strategies that do not require it, such as passport-facebook-token, passport-instagram-token and passport-github-token.

  • GoogleTokenStrategy

    The GoogleTokenStrategy mocks the passport-google-id-token strategy, that expect req (optional), parsedToken, googleId, done in verify callback.

Install

npm install --save passport-mock-strategies

Usage

OAuth2Strategy

Configure Strategy

var OAuth2StrategyMock = require("passport-mock-strategies").OAuth2Strategy;

passport.use(
  new OAuth2StrategyMock(
    {
      // Options
      passReqToCallback: true,
      passAuthentication: true
    },
    function verifyFunction(req, token, refreshToken, profile, done) {
      /* You can mock you database fetch here */
      
      var mock = {
        id: 1,
        "name": "John Doe",
        "email": "[email protected]"
      }
      
      done(null, mock);
    }
  )
);

Set mock data

strategy._redirectToCallback = true;
strategy._callbackURL = "http://localhost:5000/mock/oauth2/callback";

strategy._profile = {
  id: 1234,
  provider: "facebook",
  displayName: "John Doe",
  emails: [{ value: "[email protected]" }],
  photos: [
    {
      value: "https://via.placeholder.com/350x150"
    }
  ]
};

Authenticate Requests

// Main route
app.route('/mock/oauth2').get(
  passport.authenticate('mock-oauth2', {
    scope: ['profile', 'email']
  })
)

// Callback route
app.get(
  "/mock/oauth2/callback",
  passport.authenticate("mock-oauth2"),
  function(req, res) {
    res.send(req.user);
  }
);

GoogleTokenStrategy

Configure Strategy

var GoogleStrategyMock = require("passport-mock-strategies").GoogleTokenStrategy;

passport.use(
  new GoogleStrategyMock(
    {
      passReqToCallback: true,
      passAuthentication: true
    },
    function verifyFunction(req, parsedToken, googleId, done) {
      done(null, googleId);
    }
  )
);

Set mock data

strategy._parsedToken = "abc";
strategy._googleId = "def";

Authenticate Requests

app.get(
  "/mock/google",
  passport.authenticate("mock-google-token", {
    session: false
  }),
  function(req, res) {
    res.send(req.user);
  }
);

License

The MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published