0.1.3 • Published 10 days ago

@byu-oit-sdk/express-jwt v0.1.3

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
10 days ago

@byu-oit-sdk/jwt-express

Requirements:

  • Node.js 18+
  • npm v9+

Installing

npm install @byu-oit-sdk/jwt-express

Introduction

This express plugin allows for verification and decoding of JWTs.

Options

Along with the options for the CreateJwt() function (see docs for jwt package), the following options can be passed in when registering the plugin with fastify.

OptionTypeDefaultDescription
prefixstring-Used to specify what route the middleware is registered with.
transformerJwtPayloadTransformer<Payload, Transformer>-The function that you will use for manipulating the JWT you are authenticating.
getJwtfunction-A function for getting the JWT from the request. By default, the JWT is pulled from the auth header.
validateboolean-Boolean used to signify if we want to validate the jwt if true, or just decode it if false.

Usage

import express from 'express'
import request from 'supertest'
import { verifyJwtPlugin } from '../src/express.js'
import { Type } from '@sinclair/typebox'

// set up express server
const app = express()

// use the transformer
const transformer = (payload: { 'http://byu.edu/claims/client_preferred_first_name': string }): { preferred_first_name: string } => ({ preferred_first_name: payload['http://byu.edu/claims/client_preferred_first_name'] })
try {
  app.use(verifyJwtPlugin({ schema: Type.Object({ }, { additionalProperties: true }), key: '', validate: false, transformer }))
} catch (e) {
  console.log(e)
}

// define an endpoint
app.get('/', (req, res) => {
  res.send(req.caller)
})
const server = app.listen(3000)

const response = await request(server).get('/').set('Authorization', /* A valid token */).send({ })
console.log(response)

server.close()
0.1.3

10 days ago

0.1.2-beta.0

2 months ago

0.1.2

2 months ago

0.1.1-beta.5

2 months ago

0.1.1-beta.4

3 months ago

0.1.1

3 months ago

0.1.1-beta.3

4 months ago

0.1.1-beta.2

4 months ago

0.1.1-beta.1

4 months ago

0.1.1-beta.0

8 months ago

0.1.0

8 months ago

0.1.0-beta.8

8 months ago

0.1.0-beta.7

8 months ago

0.1.0-beta.6

9 months ago

0.1.0-beta.5

9 months ago

0.1.0-beta.4

9 months ago

0.1.0-beta.3

9 months ago

0.1.0-beta.2

9 months ago

0.1.0-beta.1

9 months ago

0.1.0-beta.0

9 months ago