Giter Club home page Giter Club logo

express-jwt's Introduction

@permettez-moi-de-construire/express-jwt

Build Status JavaScript Style Guide Code Size Dependencies Status

Jwt helper middlewares for express.

NPM

npm install --save @permettezmoideconstruire/express-jwt

API

const {
  extractToken,
  verifyToken
} = require('@permettezmoideconstruire/express-jwt')

extractToken([options])

extractToken is a middleware factory.

Per RFC6750 the returned middleware will attempt to extract a bearer token from a request from these locations:

  • The key access_token in the request body.
  • The key access_token in the request params.
  • The value from the header Authorization: Bearer <token>.

If a token is found, it will be stored on req.token. If one has been provided in more than one location, this will immediately call next with a MultipleTokenError (per RFC6750).

For APIs not RFC6750 compliant, see options :

Syntax

const express = require('express')
const { extractToken } = require('@permettezmoideconstruire/express-jwt')

const app = express()
app.use(extractToken())
app.use(function(req, res) {
  console.log(req.token)
  res.send()
})

app.use(process.env.PORT)

API

  • return function : Returns the middleware

  • options.from Object{key: function(req) => string}

    • An associative array (object) of extractors. An extractor is a function that takes a single req parameter and returns a string
    • default:
      {
        query: queryBaseExtractor('access_token'),
        body: bodyBaseExtractor('access_token'),
        header: headerBasePrefixedExtractor({
          key: 'authorization',
          prefix: 'Bearer '
        })
      }
      
  • options.to string

    • A string which is the key to place token inside req (for example { to: 'token' } will set req.token)
    • default: 'token'
  • options.multiTolerant bool

    • A boolean which switches the behavior from a "throw when token found in multiple place" strategy to a "take first found token" strategy.
    • The concept of "first" follows the order of the keys inside options.from
    • default: false

verifyToken(secretOrPrivateKey, [options])

verifyToken is a middleware factory.

The returned middleware verifies the token inside req.token and decodes it to req.token (transforms it actualy)

If you want to keep encoded token inside req, or simply change input or output key, see options.

Syntax

const express = require('express')
const { extractToken, verifyToken } = require('@permettezmoideconstruire/express-jwt')

const app = express()
app.use(
  extractToken(),
  verifyToken(process.env.JWT_SECRET_KEY)
)
app.use(function(req, res) {
  console.log(req.token)
  res.send()
})

app.use(process.env.PORT)

API

express-jwt's People

Contributors

bobholt avatar madhums avatar cyrilchapon avatar jamesplease avatar jugglinmike avatar

Watchers

James Cloos avatar Ralph' Potato avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.