lockit-mongodb-adapter
v0.4.4
Published
MongoDB adapter for lockit
Downloads
31
Readme
Lockit MongoDB adapter
MongoDB adapter for Lockit.
Installation
npm install lockit-mongodb-adapter
var adapter = require('lockit-mongodb-adapter');
Configuration
The following setting is required.
exports.db = {
url: 'mongodb://127.0.0.1/',
name: 'test',
collection: 'users'
};
Features
1. Create user
adapter.save(name, email, pass, callback)
name
: String - i.e. 'john'email
: String - i.e. '[email protected]'pass
: String - i.e. 'password123'callback
: Function -callback(err, user)
whereuser
is the new user now in our database.
The user
object has the following properties
name
: username chosen during sign upemail
: email that was provided at the beginningsignupTimestamp
: Date object to remember when the user signed upsignupToken
: unique token sent to user's email for email verificationsignupTokenExpires
: Date object usually 24h ahead ofsignupTimestamp
failedLoginAttempts
: save failed login attempts during login process, default is0
salt
: salt generated bycrypto.randomBytes()
derived_key
: password hash generated by pbkdf2_id
: document id
adapter.save('john', '[email protected]', 'secret', function(err, user) {
if (err) console.log(err);
console.log(user);
// {
// name: 'john',
// email: '[email protected]',
// signupToken: 'ef32a95a-d6ee-405a-8e4b-515b235f7c54',
// signupTimestamp: Wed Jan 15 2014 19:08:27 GMT+0100 (CET),
// signupTokenExpires: Wed Jan 15 2014 19:08:27 GMT+0100 (CET),
// failedLoginAttempts: 0,
// salt: '48cf9da376703199c30ba5c274580c98',
// derived_key: '502967e5a6e55091f4c2c80e7989623f051070fd',
// _id: 52d6ce9b651b4d825351641f
// }
});
2. Find user
adapter.find(match, query, callback)
match
: String - one of the following: 'name', 'email' or 'signupToken'query
: String - corresponds tomatch
, i.e. '[email protected]'callback
: Function -callback(err, user)
adapter.find('name', 'john', function(err, user) {
if (err) console.log(err);
console.log(user);
// {
// name: 'john',
// email: '[email protected]',
// signupToken: '3a7f0f54-32f0-44f7-97c6-f1470b94c170',
// signupTimestamp: Fri Apr 11 2014 21:31:54 GMT+0200 (CEST),
// signupTokenExpires: Sat Apr 12 2014 21:31:54 GMT+0200 (CEST),
// failedLoginAttempts: 0,
// salt: '753981e8d8e30e8047cf5685d1f0a0d4',
// derived_key: '18ce03eddab6729aeaaf76729c90cb31f16a863c',
// _id: 5348432a98a8a6a4fef1f595
// }
});
3. Update user
adapter.update(user, callback)
user
: Object - must have_id
and_rev
propertiescallback
: Function -callback(err, user)
-user
is the updated user object
// get a user from db first
adapter.find('name', 'john', function(err, user) {
if (err) console.log(err);
// add some new properties to our existing user
user.newKey = 'and some value';
user.hasBeenUpdated = true;
// save updated user to db
adapter.update(user, function(err, user) {
if (err) console.log(err);
// ...
});
});
4. Remove user
adapter.remove(name, callback)
name
: Stringcallback
: Function -callback(err, res)
-res
istrue
if everything went fine
adapter.remove('john', function(err, res) {
if (err) console.log(err);
console.log(res);
// true
});
Test
grunt
License
MIT