1.0.1 • Published 9 months ago

auth-bearer-parser v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

auth-bearer-parser

This is a parsing middleware for Bearer tokens that can be used with the Express framework.
Parse the Authorization header and assign the Bearer token to req.token.

Installation

npm

$ npm install auth-bearer-parser

yarn

$ yarn add auth-bearer-parser

Usage

TypeScript

import express, { Request, Response } from 'express';
import authBearerParser from 'auth-bearer-parser';

const app = express();
app.use(authBearerParser());
//=> now you have access to req.token, which contains the Bearer token

app.get('/', (req: Request, res: Response) => {
	console.log(req.token);
	...
});
...

JavaScript

ES Module

import express from 'express';
import authBearerParser from 'auth-bearer-parser';

const app = express();
app.use(authBearerParser());
//=> now you have access to req.token, which contains the Bearer token

app.get('/', (req, res) => {
	console.log(req.token);
	...
});
...

CommonJS

Note that you should be require('...').default.

const express = require('express');
const authBearerParser = require('auth-bearer-parser').default;

const app = express();
app.use(authBearerParser());
//=> now you have access to req.token, which contains the Bearer token

app.get('/', (req, res) => {
	console.log(req.token);
	...
});
...

API

authBearerParser(options) -> void

options

Optional
Type: object

isThrowError

Optional
Type: boolean
Default: false

If true, throw error when bearer token is invalid.
The error objects thrown are as follows.

statusmessage
401authorization header missing
400invalid token type: ${auth-scheme}auth-scheme is Basic or Digest and so on
401token missing

To catch errors thrown and continue processing, the default error handling of express can be changed to any error by extending it. An example is shown below.

import express from 'express';
import authBearerParser from 'auth-bearer-parser';

const app = express();
app.use(authBearerParser({ isThrowError: true })); // throw error when bearer token is invalid

// some kind of processing (API implementation by router, etc.)

// override express default error handlers (https://expressjs.com/en/guide/error-handling.html#writing-error-handlers)
app.use((err, req, res, next) => {
	// you can access property `status` and `message`
	res.status(err.status | 500).json({ message: err.message });
});

License

MIT licensed