connectbasicauth
v0.0.3
Published
Basic HTTP Authorization as a connectjs middleware
Downloads
2
Maintainers
Readme
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).