passport-mock-strategies

1.0.0 • Public • Published

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": "john.doe@email.com"
      }
      
      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: "john.doe@email.com" }],
  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

Readme

Keywords

none

Package Sidebar

Install

npm i passport-mock-strategies

Weekly Downloads

439

Version

1.0.0

License

MIT

Unpacked Size

17.7 kB

Total Files

11

Last publish

Collaborators

  • nucleusinc