Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including passport-cognito with all npm packages installed. Try it out:

var passportCognito = require("passport-cognito")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

passport-cognito v0.1.13

Express passport module for Cognito User Pools

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);
    });
  }
));
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free