* Added Much better session Management, key updating and deleting
* Force reload of JS if app numbers dont match * Added cool tag display on side of note * Cleaned up a bunch of code and tweaked little things to be better
This commit is contained in:
1 parent
d2624628d8
commit
071aaf22cd
18 files changed
+333
-270
No files matched your search
+46
-15
@@ -50,13 +50,37 @@ io.on('connection', function(socket){
|
||||
socket.on('user_connect', token => {
|
||||
Auth.decodeToken(token)
|
||||
.then(userData => {
|
||||
socket.join(userData.id)
|
||||
socket.join(userData.userId)
|
||||
}).catch(error => {
|
||||
//Don't add user to room if they are not logged in
|
||||
// console.log(error)
|
||||
})
|
||||
})
|
||||
|
||||
//Renew Session tokens when users request a new one
|
||||
socket.on('renew_session_token', token => {
|
||||
|
||||
//Decode the token they currently have
|
||||
Auth.decodeToken(token)
|
||||
.then(userData => {
|
||||
|
||||
console.log('Is active -> ', userData.active)
|
||||
|
||||
if(userData.active == 1){
|
||||
//Create a new one using credentials and session keys from current
|
||||
Auth.createToken(userData.userId, userData.masterKey, userData.sessionId, userData.created)
|
||||
.then(newToken => {
|
||||
|
||||
//Emit new token only to user on socket
|
||||
socket.emit('recievend_new_token', newToken)
|
||||
})
|
||||
} else {
|
||||
//Attempting to reactivate disabled session, kills it all
|
||||
Auth.terminateSession(userData.sessionId)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
socket.on('join_room', rawTextId => {
|
||||
// Join user to rawtextid room when they enter
|
||||
socket.join(rawTextId)
|
||||
@@ -78,11 +102,7 @@ io.on('connection', function(socket){
|
||||
//Update users in room count
|
||||
io.to(rawTextId).emit('update_user_count', usersInRoom.length)
|
||||
|
||||
//Debugging text
|
||||
console.log('Note diff object')
|
||||
console.log(noteDiffs)
|
||||
|
||||
|
||||
//Debugging text - prints out notes in limbo
|
||||
let noteDiffKeys = Object.keys(noteDiffs)
|
||||
let totalDiffs = 0
|
||||
noteDiffKeys.forEach(diffSetKey => {
|
||||
@@ -90,9 +110,11 @@ io.on('connection', function(socket){
|
||||
totalDiffs += noteDiffs[diffSetKey].length
|
||||
}
|
||||
})
|
||||
|
||||
console.log('Total notes in limbo -> ', noteDiffKeys.length)
|
||||
console.log('Total Diffs for all notes -> ', totalDiffs)
|
||||
//Debugging Text
|
||||
if(noteDiffKeys.length > 0){
|
||||
console.log('Total notes in limbo -> ', noteDiffKeys.length)
|
||||
console.log('Total Diffs for all notes -> ', totalDiffs)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
@@ -203,18 +225,27 @@ app.use(function(req, res, next){
|
||||
|
||||
//Always null out master key, never allow it set from outside
|
||||
req.headers.masterKey = null
|
||||
req.headers.tokenId = null
|
||||
req.headers.sessionId = null
|
||||
|
||||
//auth token set by axios in headers
|
||||
let token = req.headers.authorizationtoken
|
||||
if(token && token != null && typeof token === 'string'){
|
||||
if(token !== undefined && token.length > 0){
|
||||
Auth.decodeToken(token, req)
|
||||
.then(userData => {
|
||||
req.headers.userId = userData.userId //Update headers for the rest of the application
|
||||
|
||||
//Update headers for the rest of the application
|
||||
req.headers.userId = userData.userId
|
||||
req.headers.masterKey = userData.masterKey
|
||||
req.headers.tokenId = userData.tokenId
|
||||
req.headers.sessionId = userData.sessionId
|
||||
|
||||
//Tell front end remaining uses on current token
|
||||
res.set('remainingUses', userData.remainingUses)
|
||||
|
||||
next()
|
||||
}).catch(error => {
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
console.log(error)
|
||||
|
||||
res.statusMessage = error //Throw 400 error if token is bad
|
||||
res.status(400).end()
|
||||
@@ -231,7 +262,7 @@ let UserTest = require('@models/User')
|
||||
let NoteTest = require('@models/Note')
|
||||
let AuthTest = require('@helpers/Auth')
|
||||
Auth.test()
|
||||
UserTest.keyPairTest('genMan12', '1', printResults)
|
||||
UserTest.keyPairTest('genMan15', '1', printResults)
|
||||
.then( ({testUserId, masterKey}) => NoteTest.test(testUserId, masterKey, printResults))
|
||||
.then( message => {
|
||||
if(printResults) console.log(message)
|
||||
|
||||
Reference in new issue
Block a user