passport-cognito
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/passport-cognito package

    0.2.2 • Public • Published

    Build Status dependencies Status npm

    passport-cognito

    Passport strategy for Cognito User Pools not for Cognito Identity.

    This module lets you authenticate using Cognito User Pools in your Node.js applications. By plugging into Passport, Cognito User Pools authentication can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express.

    Install

    $ npm install passport-cognito

    Usage

    Configure Strategy

    var CognitoStrategy = require('passport-cognito')
    
    passport.use(new CognitoStrategy({
        userPoolId: 'ap-northeast-1_eSjqLfqKc',
        clientId: 'vtvg02tr21zmxvspyvawtv09b',
        region: 'ap-northeast-1'
      },
      function(accessToken, idToken, refreshToken, user, cb) {
        process.nextTick(function() {
          ...
          cb(null, user);
        });
      }
    ));

    Authenticate Requests

    To authenticate a user, send username and password to server-side by POST request like the following.

    // Browser
    $.ajax({
      type: "POST",
      url: '/auth/cognito',
      data: { username: username, password: password }
    })

    Then the strategy receive username and password as a req object. In detail, req.body.username and req.body.password should not be undefined. Then, call authenticate method as express middleware.

    // Server
    app.post('/auth/cognito',
      passport.authenticate('cognito', {
        successRedirect: '/',
        failureRedirect: '/login'
    }));

    FAQ

    How to get session expiration ?

    You can get session object by adding a variable to argument vector. Then, by executing getExpiration method, session expiration is retrieved.

    var CognitoStrategy = require('passport-cognito')
    
    passport.use(new CognitoStrategy({
        userPoolId: 'ap-northeast-1_eSjqLfqKc',
        clientId: 'vtvg02tr21zmxvspyvawtv09b',
        region: 'ap-northeast-1'
      },
      function(accessToken, idToken, refreshToken, user, session, cb) {
        process.nextTick(function() {
          user.expiration = session.getIdToken().getExpiration();
          ...
          cb(null, user);
        });
      }
    ));

    Install

    npm i passport-cognito

    DownloadsWeekly Downloads

    920

    Version

    0.2.2

    License

    MIT

    Unpacked Size

    15.1 kB

    Total Files

    9

    Last publish

    Collaborators

    • kndt84