level-users
v0.1.0
Published
Store and get users. Salt their passwords, persist them to disk.
Downloads
15
Maintainers
Readme
SYNOPSIS
Store and get users. Salt their passwords, persist them to disk.
USAGE
Pass a leveldb instance to the Users
constructor. I recommend using
sublevel
to bucket your database's meta data and multilevel
if your database is on the network. See level-user
for client side
support.
var db = level('./db')
var users = Users(db)
API
create
Create a new user by passing a user object. Only username
is required.
When a new user is created, a uuid is returned.
var user = {
username: 'test',
password: 'pass',
foo: 100,
email: '[email protected]'
}
users.create(user, function(err, id) {
// id => 'a3a1d270-75fe-4bfc-a2bc-e358903bc540'
})
remove
Removes a user and any indexs that have been created for their records
users.remove(id, function(err) {
})
addIndexes
Add indexes that can be used to get
a user. You can use any arbitrary
field that is in your user object. In this example we index on email
.
users.addIndexes(['email'], function(err) {
})
get
Get a user by their uuid. Returns the user object and a put method that can be used to update the user data.
users.get(id, function(err, user, put) {
})
Here's an example using an index. returns the user's id.
users.get({ email: '[email protected]' }, function(err, id) {
})
auth
Find out if the proposed password matches with the a salt stored for a
given user id. If auth is successful, you get a the user object and
a put function so that you can write some new user information. If the
auth fails, the user
object will be null.
users.auth(id, password, function(err, user, put) {
user.isCool = true
put(user, function(err) {
// ...
})
})
addGroups
Add groups to a user, this is just sugar for array index checking.
users.addGroups(id, ['super','rooty'], function(err, user, put) {
})
removeGroups
Remove groups from a user, also just sugar for array index checking.
users.removeGroups(id, ['rooty'], function(err, user, put) {
})