check static method
- HttpRequest request
Determines whether the request is currently authenticated.
This checks the session record without looking up the associated user.
Example:
if (await Auth.check(request)) {
print('User is authenticated');
} else {
print('Guest request');
}
Implementation
static Future<bool> check(HttpRequest request) async {
final cookie = request.cookies.firstWhereOrNull((cookie) => cookie.name == "archery_session");
if (cookie == null) {
return false;
}
final containerSession = _checkContainer(cookie.value);
if (containerSession != null) {
if (!_validateSession(containerSession)) {
await logout(request);
return false;
}
containerSession.lastActivity = DateTime.now();
return await containerSession.save();
}
final sessionRecord = await _checkDB(cookie.value);
if (sessionRecord != null) {
if (!_validateSession(sessionRecord)) {
await logout(request);
return false;
}
sessionRecord.lastActivity = DateTime.now();
_cachedSessions?.add(sessionRecord);
return await sessionRecord.save();
}
return false;
}