* Added new token system to add more security to logins

* Added simple tag editing from note page
This commit is contained in:
Max G
2020-06-10 04:41:52 +00:00
parent 6bb856689d
commit d2624628d8
11 changed files with 324 additions and 103 deletions

View File

@@ -40,9 +40,10 @@ User.login = (username, password) => {
.then(({publicKey, privateKey}) => {
//Passback a json web token
const token = Auth.createToken(lookedUpUser.id, masterKey)
resolve({ token: token, userId:lookedUpUser.id })
Auth.createToken(lookedUpUser.id, masterKey)
.then(token => {
return resolve({ token: token, userId:lookedUpUser.id })
})
})
})
@@ -119,7 +120,10 @@ User.register = (username, password) => {
})
.then(({publicKey, privateKey}) => {
const token = Auth.createToken(userId, newMasterKey)
return Auth.createToken(userId, newMasterKey)
})
.then(token => {
return resolve({token, userId})
})
.catch(console.log)
@@ -162,6 +166,16 @@ User.getCounts = (userId) => {
FROM note WHERE shared = 2 AND user_id = ? AND trashed = 0`, [userId]
)
})
.then( (rows, fields) => {
Object.assign(countTotals, rows[0][0]) //combine results
const userHash = cs.hash(String(userId)).toString('base64')
return db.promise().query(
`SELECT count(id) as activeSessions FROM user_active_session WHERE user_hash = ?`, [userHash]
)
})
.then( (rows, fields) => {
Object.assign(countTotals, rows[0][0]) //combine results
@@ -191,6 +205,11 @@ User.getCounts = (userId) => {
})
}
//Log out user by deleting login token for that active session
User.logout = (tokenId) => {
return db.promise().query('DELETE FROM user_active_session WHERE (id = ?)', [tokenId])
}
User.generateMasterKey = (userId, password) => {
return new Promise((resolve, reject) => {