New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

connectbasicauth

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

connectbasicauth

Basic HTTP Authorization as a connectjs middleware

latest
Source
npmnpm
Version
0.0.3
Version published
Weekly downloads
10
233.33%
Maintainers
1
Weekly downloads
 
Created
Source

Basic HTTP Authentication

Users and passwords (preferably hashed with a salt) are stored in a MySQL database. This module expects a stored procedure with the following signature:

spAuthenticate(username, password) -> [success, username, userRole, systemUser, systemPassword]

The first part of the URL controls which database to use: <SERVER>/<DATABASE>/...

The procedure must be possible to use when connecting to the database as an authuser. The system username and password is returned by the stored procedure. There is no need for storing system usernames and password in config files using this approach (which often is done). The credentials that are returned are then set in the user and password http headers by this module.

The following environment variable needs to be configured:

  • process.env.DB_HOST

This script shows an example of a table and stored procedure for authentication.

Testing

Setup your MySQL database according to the instructions above.

  • Start the test server with node server.js

  • Basic HTTP Authentication strategy with username and password in the URL (not recommended): curl -X POST http://jack:secret@localhost:3000/CHANGE_TO_YOUR_DATABASE/first

  • Basic HTTP Authentication strategy with username and password in the HTTP Header: curl -X POST http://localhost:3000/CHANGE_TO_YOUR_DATABASE/first -H "Authorization: Basic amFjazpzZWNyZXQ="

NOTE: The use of Buffer has been tested with v6.2.0. base64.js shows how to base64 encode a string in NodeJS (needed when testing).

Keywords

connectjs

FAQs

Package last updated on 27 May 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts