0.0.3 • Published 8 years ago

connectbasicauth v0.0.3

Weekly downloads
2
License
ISC
Repository
github
Last release
8 years ago

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.

  1. Start the test server with node server.js

  2. 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

  3. 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).

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago