2016-11-18 3 views
4

Мне нужно сохранить текущий идентификатор пользователя в сеансе в приложении Falcon. В термос я хотел бы сделать:Falcon framework - как хранить переменные в сеансе?

from flask import Flask, session 

app = Flask(__name__) 

@app.route('/') 
def example(): 
    session['foo'] = 'bar' 
    return 'bar' 

@app.route('/bar') 
def bar(): 
    return session.get('foo') 

Я хотел бы быть в состоянии сделать что-то подобное в Соколе:

class ExampleResource(object): 

    def on_get(self, req, resp): 
     resp.status = falcon.HTTP_200 
     resp.body = 'bar' 
     self.session['foo'] = 'bar' 

Как я могу сделать что-то подобное в сокола?

+0

Мне также интересно. – JasTonAChair

ответ

2

Из source code мы узнаем, что Flask использует сеанс на стороне клиента, который основан на безопасных куках.

Таким образом, мы могли бы достичь того же, используя Falcon Cookies API, который также использует безопасные файлы cookie по умолчанию.

class ExampleResource(object): 

    def on_get(self, req, resp): 
     resp.set_cookie('foo', 'bar') 
     resp.body = 'bar' 


class BarResource(object): 

    def on_get(self, req, resp): 
     resp.body = req.cookies.get('foo') 
+0

Обратите внимание, что «безопасные файлы cookie» в случае сокола (по крайней мере, v1.4.1) относится к установке «защищенного» атрибута в заголовке файла cookie, который предотвращает передачу файла cookie через http (требуется https). Это не то же самое, что и флэшка SecureCookieSession, где значения криптографически подписаны для предотвращения модификации пользователем. Не используйте Falcon для установки файлов cookie, которые вы не хотите, чтобы пользователь мог произвольно изменять. –

Смежные вопросы