# -*- coding: utf-8 -*- from werkzeug.contrib.securecookie import SecureCookie class WSGISession: def __init__(self, cookies, secret_key): self.secret_key = secret_key data = cookies.get('session') if data: self.sc = SecureCookie.unserialize(data, secret_key) else: self.reset() if 'admin' not in self.sc: self.reset() def __getitem__(self, key): return self.sc.__getitem__(key) def __setitem__(self, key, value): return self.sc.__setitem__(key, value) def __delitem__(self, key): return self.sc.__delitem__(key) def __contains__(self, key): return self.sc.__contains__(key) def reset(self): self.sc = SecureCookie(secret_key=self.secret_key) self.sc['admin'] = False def save(self, response): if self.sc.should_save: data = self.sc.serialize() response.set_cookie('session', data, httponly=True)