diff options
author | Erwan Ameil <wan@idlewan.com> | 2014-08-30 21:38:47 +0200 |
---|---|---|
committer | Erwan Ameil <wan@idlewan.com> | 2014-08-30 21:38:47 +0200 |
commit | a249a12da7d1868176788e3bc1627f76aa9977e8 (patch) | |
tree | 22c0f0c1298d9365395d58b6006cc0272dcce49c /lib/pure | |
parent | 3a00692ef88fd7c15c201e52cc376b373ee5d9a0 (diff) | |
download | Nim-a249a12da7d1868176788e3bc1627f76aa9977e8.tar.gz |
Secure and HttpOnly cookies
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/cookies.nim | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/pure/cookies.nim b/lib/pure/cookies.nim index d1cf36a87..49bf92980 100644 --- a/lib/pure/cookies.nim +++ b/lib/pure/cookies.nim @@ -28,8 +28,9 @@ proc parseCookies*(s: string): PStringTable = if s[i] == '\0': break inc(i) # skip ';' -proc setCookie*(key, value: string, domain = "", path = "", - expires = "", noName = false): string = +proc setCookie*(key, value: string, domain = "", path = "", + expires = "", noName = false, + secure = false, httpOnly = false): string = ## Creates a command in the format of ## ``Set-Cookie: key=value; Domain=...; ...`` result = "" @@ -38,16 +39,20 @@ proc setCookie*(key, value: string, domain = "", path = "", if domain != "": result.add("; Domain=" & domain) if path != "": result.add("; Path=" & path) if expires != "": result.add("; Expires=" & expires) + if secure: result.add("; secure") + if httpOnly: result.add("; HttpOnly") proc setCookie*(key, value: string, expires: TTimeInfo, - domain = "", path = "", noName = false): string = + domain = "", path = "", noName = false, + secure = false, httpOnly = false): string = ## Creates a command in the format of ## ``Set-Cookie: key=value; Domain=...; ...`` ## ## **Note:** UTC is assumed as the timezone for ``expires``. return setCookie(key, value, domain, path, - format(expires, "ddd',' dd MMM yyyy HH:mm:ss 'UTC'"), noname) + format(expires, "ddd',' dd MMM yyyy HH:mm:ss 'UTC'"), + noname, secure, httpOnly) when isMainModule: var tim = TTime(int(getTime()) + 76 * (60 * 60 * 24)) @@ -55,5 +60,3 @@ when isMainModule: echo(setCookie("test", "value", tim.getGMTime())) echo parseCookies("uid=1; kp=2") - - \ No newline at end of file |