Сейчас делаю криво руками:
# -*- coding: utf-8 -*- import hashlib import pickle from base64 import b64encode, b64decode from metake import settings from Crypto.Cipher import AES from Crypto import Random class Session(dict): def __init__(self, data=None, *args, **kwargs): self.secret = settings.SECRET_KEY self.data = u"" if data: self.data = data def encode(self): obj = AES.new(self.secret, AES.MODE_CBC, self.secret[:16]) string = pickle.dumps(self) p = 16 * (int(len(string) / 16.0) + 1) - len(string) string = string + ("#" * p) self.data = b64encode(obj.encrypt(string)).decode('ascii') return self.data def decode(self): obj = AES.new(self.secret, AES.MODE_CBC, self.secret[:16]) string = obj.decrypt(b64decode(self.data.encode('ascii'))).rstrip("#") return pickle.loads(string) def cookies(self): return ("session", self.encode())
Понятно, что так делать не нужно, да и вообще ужасный код, но чем воспользоваться, если очень нужны секурные пользовательские сессии?
UPD: почитал про beaker, может, стоит его попользовать?