console.log('beforeSet: ' + JSON.stringify(obj)); }); documentStore.on('afterSet', function (obj) { console.log('afterSet: ' + JSON.stringify(obj)); }); documentStore.on('beforeDelete', function (obj) { console.log('beforeDelete: ' + JSON.stringify(obj)); }); documentStore.on('afterDelete', function (obj) { console.log('afterDelete: ' + JSON.stringify(obj)); }); console.log('version: ' + documentStore.db.version()); sessions.addTo(documentStore); var session = sessions.create('testApp'); console.log('id = ' + session.id); console.log('token: ' + session.token); var results = sessions.authenticate(session.token, 'noCheck'); console.log('results: ' + JSON.stringify(results)); console.log('token for session : ' + results.session.id + ': ' + results.session.token); console.log('application : ' + results.session.application); console.log('session data: ' + JSON.stringify(results.session.data.getDocument())); db.close();
this.on('message', function (messageObj, send, finished) { var session; if (messageObj.type === 'initiate') { session = sessions.create('testApp'); finished({ token: session.token }); } if (messageObj.type === 'login') { // user hasn't yet logged in, so set 2nd argument (loggingIn) to true var results = sessions.authenticate(messageObj.token, true); if (results.error) { finished(results); return; } var passwords = new this.documentStore.DocumentNode('ewdPasswords'); var username = messageObj.credentials.username; var password = messageObj.credentials.password; if (!username || username === '') { finished({ error: 'Missing username' }); return; } if (!password || password === '') { finished({ error: 'Missing password' }); return; } if (!passwords.$(username).exists) { finished({ error: 'Invalid username' }); return; } if (passwords.$(username).value !== password) { finished({ error: 'Invalid password' }); return; } session = results.session; session.authenticated = true; finished({ ok: true, application: session.application }); } finished({ error: 'invalid request: ' + messageObj.type }); });