From c21de31cb19f93656f70f5bb46f792c49b0a8e02 Mon Sep 17 00:00:00 2001 From: Tina_Azure <-> Date: Sat, 22 Apr 2023 23:15:05 +0200 Subject: [PATCH] Functions to generate secure cookies --- src/utilities.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/utilities.cpp b/src/utilities.cpp index 0475241..bce76ac 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -295,4 +295,30 @@ namespace Utilities { loggedIn = true; return loggedIn; } + /* + * Generates a secure cookie + */ + std::string generateSecureCookie(const std::string& value, bool stayLoggedIn) { + std:: string secureCookieValue = value; + secureCookieValue += "; HttpOnly"; // avoid JS from Accessing cookie + secureCookieValue += "; Secure"; // set cookie to be secure + secureCookieValue += "; Path=/"; + if (stayLoggedIn) + secureCookieValue += "; Expires=Fri, 31 Dec 9999 23:59:59 GMT"; //max value since cookies can't be set to never expire else it will simply be a session cookie + return secureCookieValue; + } + + /* + * Generates the value to create a secure cookie with the value representing a logged-in session + */ + std::string generateSecureCookieLoginKeyValue(const std::string& loginKeyValue, bool stayLoggedIn) { + return generateSecureCookie(loginKeyValue, stayLoggedIn); + } + + /* + * generates the value to create a secure cookie with the value representing a logged-in FreelancerID + */ + std::string generateSecureCookieFreelancerEmailValue(const std::string& freelancerEmailValue, bool stayLoggedIn) { + return generateSecureCookie(freelancerEmailValue, stayLoggedIn); + } } \ No newline at end of file