An optional module that handles session state for just-login.
var Core = require('just-login-core')
var SessionState = require('just-login-session-state')
var Level = require('level-mem')
var tokenDb = new Level()
var sessionDb = new Level()
var core = Core(tokenDb)
var sessionState = SessionState(core, sessionDb)
var SessionState = require('just-login-session-state')
core
is an instance of a just-login-core.db
is expecting a levelup database.options
is an optional object:unauthenticateAfterMs
is a number in milliseconds of a session's period of inactivity before they are unauthenticated. (Callingauthenticate()
/isAuthenticated()
counts as activity.) Defaults to 1 week.deleteSessionAfterMs
is a number in milliseconds of a session's period of inactivity before the session is deleted. If the user does not callisAuthenticated()
within that time period, their session will be deleted. Defaults to 1 week.checkIntervalMs
is a number in milliseconds of the session's timeout's check interval. (See expireUnusedKeys({checkIntervalMs}).) Defaults to 10 seconds.
- Returns
sessionState
.
Creates a new (unauthenticated) session.
cb
is a function that has the following arguments:err
isnull
or anError
object.sessionId
is a string of the new session id.
sessionState.createSession(function(err, sessionId) {
if (err) {
console.error(err)
} else {
console.log('session created, but you\'re not logged in')
}
})
sessionId
is a string of the session id for which to check the existence.cb
is a function that has the following arguments:err
isnull
or anError
object.date
isnull
if the session does not exist, otherwise it is adate
object.
sessionState.sessionExists('64416534-3199-11e5-96bb-ba029ef54746', function(err, date) {
if (err) {
console.error(err)
} else if (date) {
console.log('The session exists, and was created at ' + new Date(date))
} else {
console.log('The session does not exist')
}
})
sessionId
is a string of the session id to delete.cb
is an optional function that has the following argument:err
isnull
or anError
object.
sessionState.deleteSession('64416534-3199-11e5-96bb-ba029ef54746', function(err) {
if (err) {
console.error(err)
} else {
console.log('Session was deleted')
}
})
Checks if a user is authenticated. (Logged in.)
sessionId
is a string of the session id in question.cb
is a function with the following arguments:err
isnull
or anError
object.contactAddress
isnull
is the user is not authenticated, otherwise it is a string of their contact address.
sessionState.isAuthenticated('64416534-3199-11e5-96bb-ba029ef54746', function(err, contactAddress) {
if (err) {
console.error(err)
} else if (contactAddress) {
console.log('You are logged in')
} else {
console.log('You are not logged in')
}
})
Sets the session id to be unauthenticated.
sessionId
is a string of the session id that is trying to get authenticated.cb
is an optional function with the following argument:err
isnull
or anError
object.
sessionState.unauthenticate('64416534-3199-11e5-96bb-ba029ef54746', function(err) {
if (err) {
console.error(err)
} else {
console.log('You have been logged out')
}
})