write method
Saves the session data to a file and sets the appropriate cookie.
Implementation
@override
Future<void> write(
Request request,
Response response,
Session session,
) async {
final maxAge = session.options.maxAge ?? 0;
if (maxAge <= 0) {
await _eraseFile(session.id);
response.setCookie(
session.name,
'',
maxAge: -1,
path: session.options.path ?? "/",
);
return;
}
await _saveToFile(session.id, session.values);
final codec = codecs.first;
final encoded = codec.encode(session.name, {'id': session.id});
response.setCookie(
session.name,
encoded,
path: session.options.path ?? "/",
domain: session.options.domain ?? "",
maxAge: session.options.maxAge,
secure: session.options.secure ?? false,
httpOnly: session.options.httpOnly ?? true,
);
await _maybePrune();
}