roar
Loading...
Searching...
No Matches
cookie.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <boost/optional.hpp>
6
7#include <string>
8#include <unordered_map>
9#include <cstdint>
10#include <vector>
11
12namespace Roar
13{
17 class Cookie
18 {
19 public:
24 explicit Cookie();
25
29 explicit Cookie(std::string const& name, std::string const& value);
30
34 static std::unordered_map<std::string, std::string> parseCookies(std::string const& cookieHeaderEntry);
35
39 Cookie& setName(std::string const& name);
40
44 Cookie& setValue(std::string const& value);
45
49 Cookie& setExpiry(date const& expires);
50
56
62 Cookie& setSecure(bool secure);
63
70 Cookie& setHttpOnly(bool http_only);
71
75 Cookie& setDomain(std::string const& domain);
76
80 Cookie& setPath(std::string const& path);
81
85 Cookie& setMaxAge(uint64_t age);
86
87 Cookie& setSameSite(std::string const& same_site);
88
92 std::string getName() const;
93
97 std::string getValue() const;
98
102 bool isSecure() const;
103
107 bool isHttpOnly() const;
108
112 std::string getPath() const;
113
117 std::string getDomain() const;
118
122 uint64_t getMaxAge() const;
123
124 std::string getSameSite() const;
125
129 std::string toSetCookieString() const;
130
131 private:
132 std::string name_;
133 std::string value_;
134 std::string domain_; // empty means not set
135 std::string path_; // empty means not set
136 std::string sameSite_;
137 boost::optional<date> expires_;
138 uint64_t maxAge_; // 0 = not set
141 };
142}
Definition cookie.hpp:18
std::string getSameSite() const
Definition cookie.cpp:154
boost::optional< date > expires_
Definition cookie.hpp:137
std::string toSetCookieString() const
Definition cookie.cpp:159
Cookie & setDomain(std::string const &domain)
Definition cookie.cpp:95
std::string path_
Definition cookie.hpp:135
std::string domain_
Definition cookie.hpp:134
std::string sameSite_
Definition cookie.hpp:136
Cookie & setHttpOnly(bool http_only)
Definition cookie.cpp:89
Cookie & makeSessionCookie()
Definition cookie.cpp:77
Cookie & setSecure(bool secure)
Definition cookie.cpp:83
std::string getValue() const
Definition cookie.cpp:124
Cookie & setValue(std::string const &value)
Definition cookie.cpp:65
bool httpOnly_
Definition cookie.hpp:140
std::string getPath() const
Definition cookie.cpp:139
uint64_t maxAge_
Definition cookie.hpp:138
Cookie & setPath(std::string const &path)
Definition cookie.cpp:101
uint64_t getMaxAge() const
Definition cookie.cpp:149
std::string name_
Definition cookie.hpp:132
Cookie & setName(std::string const &name)
Definition cookie.cpp:59
Cookie()
Definition cookie.cpp:9
std::string value_
Definition cookie.hpp:133
Cookie & setSameSite(std::string const &same_site)
Definition cookie.cpp:113
Cookie & setExpiry(date const &expires)
Definition cookie.cpp:71
std::string getDomain() const
Definition cookie.cpp:144
bool secure_
Definition cookie.hpp:139
Cookie & setMaxAge(uint64_t age)
Definition cookie.cpp:107
std::string getName() const
Definition cookie.cpp:119
bool isSecure() const
Definition cookie.cpp:129
bool isHttpOnly() const
Definition cookie.cpp:134
static std::unordered_map< std::string, std::string > parseCookies(std::string const &cookieHeaderEntry)
Definition cookie.cpp:33
Definition date.hpp:14
Definition authorization.hpp:10