Class: Session

arpen/services/session~ Session

User sessions registry service

jsonwebtoken module is required for token methods

new Session(app, config, logger)

Create the service
Parameters:
Name Type Description
app App The application
config object Configuration
logger Logger Logger service

Members


<static> provides :string

Service name is 'session'
Type:
  • string

<static> requires :Array.<string>

Dependencies as constructor arguments
Type:
  • Array.<string>

<static> lifecycle :string

This service is a singleton
Type:
  • string

Methods


<async> addBridge(name, instance)

Add new bridge
Parameters:
Name Type Description
name string Bridge name
instance object Bridge instance
Returns:
Type
Promise

<async> removeBridge(name)

Destroy a bridge
Parameters:
Name Type Description
name string Bridge name
Returns:
Type
Promise

<async> create(name, user [, info])

Create new session for a user
Parameters:
Name Type Argument Description
name string Bridge name
user UserModel | null User model or null for anonymous session
info * <optional>
Extra information for the bridge
Returns:
Resolves to session model
Type
Promise

<async> load(name, token [, info])

Load session of a user
Parameters:
Name Type Argument Description
name string Bridge name
token * User token
info * <optional>
Extra information for the bridge
Returns:
Resolves to session model or null
Type
Promise

<async> loadAll(token [, info])

Load session of a user
Parameters:
Name Type Argument Description
token * User token
info * <optional>
Extra information for the bridge
Returns:
Resolves to session model or null
Type
Promise

<async> update(name, session [, info])

Update session of a user
Parameters:
Name Type Argument Description
name string Bridge name
session SessionModel Session model
info * <optional>
Extra information for the bridge
Returns:
Resolves to true if updated
Type
Promise

<async> updateAll(session [, info])

Update session of a user
Parameters:
Name Type Argument Description
session SessionModel Session model
info * <optional>
Extra information for the bridge
Returns:
Resolves to true if updated
Type
Promise

<async> remove(name, session)

Remove session of a user
Parameters:
Name Type Description
name string Bridge name
session SessionModel Session model
Returns:
Resolves to true if removed
Type
Promise

<async> removeAll(session)

Remove session of a user
Parameters:
Name Type Description
session SessionModel Session model
Returns:
Resolves to true if removed
Type
Promise

<async> destroy(name, session)

Destroy session of a user
Parameters:
Name Type Description
name string Bridge name
session SessionModel Session model
Returns:
Type
Promise

<async> destroyAll(session)

Destroy session of a user in all the bridges
Parameters:
Name Type Description
session SessionModel Session model
Returns:
Type
Promise

isEmpty(session)

Is session empty
Parameters:
Name Type Description
session SessionModel Session model
Returns:
Type
boolean

<async> encodeJwt(name, session [, payload])

Encode JWT
Parameters:
Name Type Argument Description
name string Bridge name
session SessionModel Session model
payload object <optional>
Token payload
Returns:
Resolves to JWT string
Type
Promise

<async> decodeJwt(name, token [, info])

Decode JWT
Parameters:
Name Type Argument Description
name string Bridge name
token string JWT string
info * <optional>
Extra information for the bridge
Returns:
Resolves to { session, payload }
Type
Promise

<async> onTimer(name)

Delete expired sessions
Parameters:
Name Type Description
name string Bridge name

_cacheAdd(bridge, session [, info])

Add session to the cache
Parameters:
Name Type Argument Description
bridge object Bridge object
session SessionModel Session model
info * <optional>
Extra information for the bridge
Returns:
Success or not
Type
boolean

_cacheDel(bridge, session)

Remove session from the cache
Parameters:
Name Type Description
bridge object Bridge object
session SessionModel Session model
Returns:
Success or not
Type
boolean

<async> _doSave(bridge, session [, info])

Actual saving attempt
Parameters:
Name Type Argument Description
bridge object Bridge object
session SessionModel Session model
info * <optional>
Extra information for the bridge
Returns:
Type
Promise