Session class abstract

When a call is made to the Server a Session object is created. It contains all data associated with the current connection and provides easy access to the database.

Implemented types
Implementers

Constructors

Session({UuidValue? sessionId, required Server server, String? authenticationKey, HttpRequest? httpRequest, WebSocket? webSocket, required bool enableLogging, required String endpoint, int? messageId, String? method})
Creates a new session. This is typically done internally by the Server.

Properties

authenticated Future<AuthenticationInfo?>
The authentication information for the session. This will be null if the session is not authenticated.
no setter
authenticationKey String?
The authentication key used to authenticate the session.
no setter
caches → Caches
Provides access to all caches used by the server.
no setter
db Database
Access to the database.
no setteroverride
duration Duration
Returns the duration this session has been open.
no setter
enableLogging bool
True if logging is enabled for this session. Normally, logging should be enabled but it will be disabled for internal sessions used by Serverpod.
final
endpoint String
Endpoint that triggered this session.
final
hashCode int
The hash code for this object.
no setterinherited
isUserSignedIn Future<bool>
Returns true if the user is signed in.
no setter
messages MessageCentralAccess
Access to the MessageCentral for passing real time messages between web socket streams and other listeners.
getter/setter pair
method String?
Method that triggered this session, if any.
final
passwords Map<String, String>
Map of passwords loaded from config/passwords.yaml
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
server Server
The Server that created the session.
final
serverpod Serverpod
The Serverpod this session is running on.
no setter
sessionId UuidValue
The id of the session.
final
startTime DateTime
The time the session object was created.
no setter
storage StorageAccess
Provides access to the cloud storages used by this Serverpod.
latefinal
transaction Transaction?
Optional transaction to use for all database queries. Only exists to support the serverpod_test package.
no setteroverride
userObject ↔ dynamic
An custom object associated with this Session. This is especially useful for keeping track of the state in a StreamingEndpoint.
getter/setter pair

Methods

addWillCloseListener(WillCloseListener listener) → void
Adds a listener that will be called when the session is about to close. The listener should return a FutureOr that completes when the listener is done.
close({dynamic error, StackTrace? stackTrace}) Future<int?>
Closes the session. This method should only be called if you have manually created a the Session e.g. by calling createSession on Serverpod. Closing the session finalizes and writes logs to the database. After a session has been closed, you should not call any more methods on it. Optionally pass in an error/exception and stackTrace if the session ended with an error and it should be written to the logs. Returns the session id, if the session has been logged to the database.
log(String message, {LogLevel? level, dynamic exception, StackTrace? stackTrace}) → void
Logs a message. Default LogLevel is LogLevel.info. The log is written to the database when the session is closed.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
removeWillCloseListener(WillCloseListener listener) → void
Removes a listener that will be called when the session is about to close.
toString() String
A string representation of this object.
inherited
updateAuthenticated(AuthenticationInfo? info) → void
Updates the authentication information for the session. This is typically done by the Server when the user is authenticated. Using this method modifies the authenticated user for this session.

Operators

operator ==(Object other) bool
The equality operator.
inherited