Nobody Prefers Margarine

    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

    Keywords

    none

    Install

    npm i passport-mock-strategies

    DownloadsWeekly Downloads

    326

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    17.7 kB

    Total Files

    11

    Last publish

    Collaborators

    • nucleusinc