Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 20, 2013 21:39:38

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Webob и сессии

Добрый день, кто-нибудь может подсказать готовое решение для управления пользовательской сессией в webob? Переход на Flask прошу пока что не предлагать. Проблема в том, что в webob данного механизма просто нету.

Сейчас делаю криво руками:

# -*- 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, может, стоит его попользовать?



Отредактировано Enchantner (Окт. 20, 2013 21:54:54)

Офлайн

#2 Окт. 20, 2013 21:59:45

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Webob и сессии

и причем здесь webob?

Офлайн

#3 Окт. 20, 2013 22:01:42

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Webob и сессии

bismigalis
Использую его, как основу для небольшого JSON-RPC API.



Офлайн

#4 Окт. 20, 2013 22:10:24

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Webob и сессии

это бибилиотека

сессии это функция фреймворка

Офлайн

#5 Окт. 20, 2013 22:11:54

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Webob и сессии

bismigalis
я согласен, но это фактически единственная функция фреймворка, которая мне нужна. Остальные проблемы уже решены. Поэтому и ищу готовые решения в этой сфере.



Офлайн

#6 Окт. 20, 2013 22:14:11

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Webob и сессии

посмотри в код существующих фреймворков и заимствуй

Отредактировано bismigalis (Окт. 20, 2013 22:14:32)

Офлайн

#7 Окт. 20, 2013 22:15:20

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Webob и сессии

bismigalis
спасибо, кэп :) я надеялся, что кто-то знает готовое решение специально для этой цели, чтобы не писать руками велосипед на основе кода из фреймворка.



Офлайн

#8 Окт. 21, 2013 01:29:40

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Webob и сессии

Flask не предлагаю, предлагаю Werkzeug. Всё включено, средненький, без зависимостей (что невероятно круто в наше-то время, я считаю, а то каждый считает своим долгом на базе webob, beaker, jinja, routes и пр. сделать свой говно-фреймворк), аккуратный API, как по мне. Werkzeug больше не фреймворк, а библиотека, как набор Paste, что-ли. Кроме Flask на Werkzeug был сделан Glashammer, интересен прежде всего в образовательных целях, к сожалению заброшен.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version