From acad9bc37b3e5f2c5309232d7e4e1368da93bba8 Mon Sep 17 00:00:00 2001 From: Robert Aistleitner Date: Thu, 28 Apr 2016 10:30:05 +0200 Subject: [PATCH] add support for cookies in the websocket if cookies are used for session handling, please note that you have to persist your session manually. something like ```self.app.save_session(session, make_response(""))``` after messages are received does the trick. --- flask_sockets.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/flask_sockets.py b/flask_sockets.py index de48e3b..aa51fa9 100644 --- a/flask_sockets.py +++ b/flask_sockets.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- from werkzeug.routing import Map, Rule from werkzeug.exceptions import NotFound +from werkzeug.http import parse_cookie +from flask import request def log_request(self): log = self.server.log @@ -37,9 +39,13 @@ class SocketMiddleware(object): try: handler, values = adapter.match() environment = environ['wsgi.websocket'] + cookie = parse_cookie(environ['HTTP_COOKIE']) with self.app.app_context(): with self.app.request_context(environ): + # add cookie to the request to have correct session handling + request.cookie = cookie + handler(environment, **values) return [] except (NotFound, KeyError):