Sets a cookie.
(
name,
value,
expires="",
domain=None,
secure=False,
httponly=False,
path=None,
samesite=None,
)
| 479 | |
| 480 | |
| 481 | def setcookie( |
| 482 | name, |
| 483 | value, |
| 484 | expires="", |
| 485 | domain=None, |
| 486 | secure=False, |
| 487 | httponly=False, |
| 488 | path=None, |
| 489 | samesite=None, |
| 490 | ): |
| 491 | """Sets a cookie.""" |
| 492 | morsel = Morsel() |
| 493 | name, value = safestr(name), safestr(value) |
| 494 | morsel.set(name, value, quote(value)) |
| 495 | if isinstance(expires, int) and expires < 0: |
| 496 | expires = -1000000000 |
| 497 | morsel["expires"] = expires |
| 498 | morsel["path"] = path or ctx.homepath + "/" |
| 499 | if domain: |
| 500 | morsel["domain"] = domain |
| 501 | if secure: |
| 502 | morsel["secure"] = secure |
| 503 | if httponly: |
| 504 | morsel["httponly"] = True |
| 505 | value = morsel.OutputString() |
| 506 | if samesite and samesite.lower() in ("strict", "lax", "none"): |
| 507 | value += "; SameSite=%s" % samesite |
| 508 | header("Set-Cookie", value) |
| 509 | |
| 510 | |
| 511 | def parse_cookies(http_cookie): |