« Back to Index

[Python Cookies]

View original Gist on GitHub

Tags: #python #cookies

Python Cookies.py

from datetime import datetime, timedelta
from http import cookies

cookie_expires = (datetime.now() + timedelta(days=30)).strftime('%a, %d %b %Y %H:%M:%S')

c = cookies.SimpleCookie()
c['buzzfeedauth'] = f'id_token={u.id_token};access_token={u.access_token};refresh_token={u.refresh_token}'
c['buzzfeedauth']['domain'] = 'buzzfeed.io'
c['buzzfeedauth']['secure'] = True
c['buzzfeedauth']['httponly'] = True
c['buzzfeedauth']['expires'] = cookie_expires

#############################################

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        if not self.get_cookie("mycookie"):
            self.set_cookie("mycookie", "myvalue")
            self.write("Your cookie was not set yet!")
        else:
            self.write("Your cookie was set!")
            
# http://www.tornadoweb.org/en/stable/web.html#tornado.web.RequestHandler.set_cookie
            
#############################################
            
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        if not self.get_secure_cookie("mycookie"):
            self.set_secure_cookie("mycookie", "myvalue")
            self.write("Your cookie was not set yet!")
        else:
            self.write("Your cookie was set!")
            
application = tornado.web.Application([
    (r"/", MainHandler),
], cookie_secret="__TODO:_GENERATE_YOUR_OWN_RANDOM_VALUE_HERE__")

# http://www.tornadoweb.org/en/stable/guide/security.html

#############################################

cookie_name = 'buzzfeedauth'
cookie_value = f'id_token={u.id_token};access_token={u.access_token};refresh_token={u.refresh_token}'
cookie_args = {
  'secure': True,
  'httponly': True,
}
self.set_cookie(cookie_name, cookie_value, domain=settings.get('cookie_domain'), expires_days=30, **cookie_args)