0.4.4 • Published 10 years ago
lockit-mongodb-adapter v0.4.4
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. 'john@email.com'pass: String - i.e. 'password123'callback: Function -callback(err, user)whereuseris 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 ofsignupTimestampfailedLoginAttempts: save failed login attempts during login process, default is0salt: salt generated bycrypto.randomBytes()derived_key: password hash generated by pbkdf2_id: document id
adapter.save('john', 'john@email.com', 'secret', function(err, user) {
if (err) console.log(err);
console.log(user);
// {
// name: 'john',
// email: 'john@email.com',
// 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. 'john@email.com'callback: Function -callback(err, user)
adapter.find('name', 'john', function(err, user) {
if (err) console.log(err);
console.log(user);
// {
// name: 'john',
// email: 'john@email.com',
// 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_idand_revpropertiescallback: Function -callback(err, user)-useris 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)-resistrueif everything went fine
adapter.remove('john', function(err, res) {
if (err) console.log(err);
console.log(res);
// true
});Test
grunt
License
MIT