50 lines
1.4 KiB
Markdown
50 lines
1.4 KiB
Markdown
# Cookies
|
|
|
|
## Request
|
|
|
|
Request cookies can be accessed via the request.cookie dictionary
|
|
|
|
### Example
|
|
|
|
```python
|
|
from sanic import Sanic
|
|
from sanic.response import text
|
|
|
|
@app.route("/cookie")
|
|
async def test(request):
|
|
test_cookie = request.cookies.get('test')
|
|
return text("Test cookie set to: {}".format(test_cookie))
|
|
```
|
|
|
|
## Response
|
|
|
|
Response cookies can be set like dictionary values and
|
|
have the following parameters available:
|
|
|
|
* expires - datetime - Time for cookie to expire on the client's browser
|
|
* path - string - The Path attribute specifies the subset of URLs to
|
|
which this cookie applies
|
|
* comment - string - Cookie comment (metadata)
|
|
* domain - string - Specifies the domain for which the
|
|
cookie is valid. An explicitly specified domain must always
|
|
start with a dot.
|
|
* max-age - number - Number of seconds the cookie should live for
|
|
* secure - boolean - Specifies whether the cookie will only be sent via
|
|
HTTPS
|
|
* httponly - boolean - Specifies whether the cookie cannot be read
|
|
by javascript
|
|
|
|
### Example
|
|
|
|
```python
|
|
from sanic import Sanic
|
|
from sanic.response import text
|
|
|
|
@app.route("/cookie")
|
|
async def test(request):
|
|
response = text("There's a cookie up in this response")
|
|
response.cookies['test'] = 'It worked!'
|
|
response.cookies['test']['domain'] = '.gotta-go-fast.com'
|
|
response.cookies['test']['httponly'] = True
|
|
return response
|
|
``` |