lauer v0.1.2
Local Authentication Ergo
Tiny user management with SQLite. Lauer performs all the usual operations: creating users, login, verification, password reset and storing data. It's lightweigt and portable.
Install
npm install lauer
Example
var lauer = require("lauer");
var users = new lauer({db: "/tmp/lauer.sqlite"});
users.create({
username: "user1",
email: "user@example.com",
password: "gu3ssme!1",
verfified: 1,
}, function(err, result){
console.log(err, result);
users.login("user1", "gu3ssme!1", function(err, result){
console.log(err, result);
});
});
API
lauer(opts, function(err, new){})
Create a new instance of Lauer
. opts
:
{
iterations: 4096, // number of iterations used by `pbkdf2`
db: "lauer.sqlite" // path to sqlite database
}
new
is true, if an empty database was created.
lauer.salt()
Create and return a random salt.
lauer.password(username, password, salt)
Create and return a salted password hash.
lauer.slug(str)
Slugify a string.
lauer.create(user, function(err, result){})
Create a user. user
:
{
username: "user1", // user name
email: "user@example.com", // email address
password: "gu3ssme!1", // password
verfified: 0, // 0 = user pending verfication, 1 = instantly active (see lauer.verify)
level: 0, // level (may be used by you to dertemine wo is an admin)
data: {} // user-defined data object
}
result
:
{
id: 1, // user id
username: "user1", // user name
verification: "<hexstr>" // verification string (see lauer.verify)
}
lauer.get(id||username, function(err, result){})
Get a user object. The first parameter may be an id
or username
.
result
:
{
id: 1, // user id
username: "user1", // user name
email: "user@example.com", // email
verified: 0, // verification status (0 = false, 1 = true)
level: 0, // level (may be used by you to dertemine wo is an admin)
created: 1234567890, // time user was created
updated: 1234567890, // time user was last changed
lastlogin: 1234567890, // time of last login
data: {} // user-defined data object
}
lauer.login(username||email, password, function(err, result){})
Get a user object. The first parameter may be username
or email
.
result
:
{
id: 1, // user id
username: "user1", // user name
level: 0, // level (may be used by you to dertemine wo is an admin)
lastlogin: 1234567890 // time of last login
}
lauer.delete(id, function(err){})
Delete user with id
.
lauer.verify(verification, function(err, result){})
Verify user with verification
. If verfification is successful, verified
will be set to 1 and the user may log in.
result
:
{
id: 1, // user id
username: "user1", // user name
level: 0, // level (may be used by you to dertemine wo is an admin)
lastlogin: 1234567890 // time of last login
}
lauer.reset(id||username, function(err, result){})
Reset verification and create new verification string.
result
:
{
id: 1, // user id
username: "user1", // user name
email: "user@example.com", // email
verification: "<hexstr>" // verification string (see lauer.verify)
}
lauer.verification(id||username, function(err, result){})
Create new verification string without resetting verification. Useful for changing forgotten passwords.
result
:
{
id: 1, // user id
username: "user1", // user name
email: "user@example.com", // email
verification: "<hexstr>" // verification string (see lauer.verify)
}
lauer.check(username, function(err){})
Check if a username
is available.
lauer.change(username||email, verification||current_password, new_password, function(err, result){})
Change password for a user identified by username
or email
.
The second parameter may either be the users current password or a verification tring created by lauer.verification
.
result
:
{
id: 1, // user id
username: "user1" // user name
}
lauer.data(id||username, data, function(err){})
Change user data.
result
:
{
id: 1, // user id
username: "user1" // user name
}