diff --git a/src/lms/ui/Auth.cpp b/src/lms/ui/Auth.cpp index 3cacfd1f..95646614 100644 --- a/src/lms/ui/Auth.cpp +++ b/src/lms/ui/Auth.cpp @@ -21,12 +21,12 @@ #include -#include #include -#include #include #include +#include #include +#include #include "services/auth/IAuthTokenService.hpp" #include "services/auth/IPasswordService.hpp" @@ -50,12 +50,16 @@ void createAuthToken(Database::UserId userId, const Wt::WDateTime& expiry) { const std::string secret {Service<::Auth::IAuthTokenService>::get()->createAuthToken(userId, expiry)}; - Wt::Http::Cookie cookie{ authCookieName, secret, expiry }; - cookie.setSecure(LmsApp->environment().urlScheme() == "https"); - LmsApp->setCookie(cookie); + LmsApp->setCookie(authCookieName, + secret, + expiry.toTime_t() - Wt::WDateTime::currentDateTime().toTime_t(), + "", + "", + LmsApp->environment().urlScheme() == "https"); } + std::optional processAuthToken(const Wt::WEnvironment& env) { @@ -68,12 +72,8 @@ processAuthToken(const Wt::WEnvironment& env) { case ::Auth::IAuthTokenService::AuthTokenProcessResult::State::Denied: case ::Auth::IAuthTokenService::AuthTokenProcessResult::State::Throttled: - { - Wt::Http::Cookie cookie{ authCookieName }; - cookie.setSecure(LmsApp->environment().urlScheme() == "https"); - LmsApp->removeCookie(cookie); + LmsApp->setCookie(authCookieName, std::string {}, 0, "", "", env.urlScheme() == "https"); return std::nullopt; - } case ::Auth::IAuthTokenService::AuthTokenProcessResult::State::Granted: createAuthToken(res.authTokenInfo->userId, res.authTokenInfo->expiry);