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
Available extensions

Constructors

Session({UuidValue? sessionId, required Server server, String? authenticationKey, required bool enableLogging, required String endpoint, String? method, Request? request})
Creates a new session. This is typically done internally by the Server.

Properties

authenticated 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 bool
Returns true if the user is signed in.
no setter
isWebAuthCookieRequest bool

Available on Session, provided by the WebAuthCookieSession extension

Whether the request participates in cookie-based web auth transport (via the webAuthModeHeaderName header) and the server has a ServerpodConfig.authCookie configured.
no setter
logQuery LogQueryFunction?
Optional function to log a query.
no setteroverride
logWarning LogWarningFunction?
Optional function to log a warning during the execution of a query.
no setteroverride
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
request Request?
The Request associated with the call, if any. This is null for InternalSession and FutureCallSession.
final
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
A custom object associated with this Session.
getter/setter pair
webAuthBasePath String?

Available on Session, provided by the WebAuthCookieSession extension

The browser-visible base path the cookie-mode client declared via the webBasePathHeaderName header, or null when absent or malformed.
no setter

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.
alert(String message, {LogLevel? level}) → void
Logs message as an alert. Works like log, but the serverpod CLI shows it as a copyable alert in its terminal UI. Wrap a copyable segment in angle brackets, e.g. 'Code: <123456>'. Other log destinations treat it as a regular log message.
clearWebAuthCookie({String? refreshCookiePath}) → void

Available on Session, provided by the WebAuthCookieSession extension

Clears the auth cookie for cookie-mode requests (a no-op otherwise).
close({dynamic error, StackTrace? stackTrace}) Future<void>
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.
log(String message, {LogLevel? level, dynamic exception, StackTrace? stackTrace, Map<String, Object?>? metadata}) → 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
readWebAuthRefreshCookie() String?

Available on Session, provided by the WebAuthCookieSession extension

Reads the JWT refresh token from the refresh cookie for cookie-mode requests, or null when cookie mode is not active or the cookie is absent.
removeWillCloseListener(WillCloseListener listener) → void
Removes a listener that will be called when the session is about to close.
setResponseCookie(SetCookie cookie) → void
Adds a Set-Cookie to this call's HTTP response. See setResponseHeader for which calls this applies to. To remove a cookie on the client, set one with the same name and maxAge: 0.
setResponseHeader(String name, String value) → void
Sets the HTTP response header name to value for this call.
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.
writeWebAuthCookie(String token, {int? maxAgeSeconds}) bool

Available on Session, provided by the WebAuthCookieSession extension

If isWebAuthCookieRequest, writes token as the auth cookie and returns true. Otherwise returns false and the caller should return the token in the response body as usual. maxAgeSeconds sets the cookie lifetime; omit it for a session cookie.
writeWebAuthRefreshCookie(String refreshToken, {int? maxAgeSeconds, String? path}) bool

Available on Session, provided by the WebAuthCookieSession extension

If isWebAuthCookieRequest, writes refreshToken as the JWT refresh cookie and returns true. Otherwise returns false and the caller should return the refresh token in the response body as usual.

Operators

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