/tornado-rediscluster-session

Server side session middleware based on redis or rediscluster

Primary LanguagePythonMIT LicenseMIT

tornado-rediscluster-session

Server side session middleware based on redis or rediscluster

INSTALL

git clone https://github.com/andy-lab/tornado-rediscluster-session
cd tornado-rediscluster-session
python3 setup.py

USAGE

from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.web import authenticated, Application

from tornado_rediscluster_session import RedisSessionHandler


class LoginHandler(RedisSessionHandler):
    def get(self):
        name = self.get_argument("name")
        self.set_session('user', name)


class IndexHandler(RedisSessionHandler):
    def get_current_user(self):
        return self.get_session('user')

    @authenticated
    def get(self):
        self.write("hello %s" % self.current_user)


def run():
    app = Application(
        [
            (r'/login', LoginHandler),
            (r'/', IndexHandler),
        ],
        login_url='/login',
        cookie_secret='asdsadsadwqd132432rdews',
        debug=True,
        redis={
            'host': 'localhost',
            'db': 9
        }
        # or redis = {
        #    'startup_nodes':[
        #        {'host':'redis_server_1', 'port':'6379'},
        #        {'host':'redis_server_2', 'port':'6379'},
        #        {'host':'redis_server_3', 'port':'6379'}
        #    ],
        #    'password':'***'
        #}
    )
    http_server = HTTPServer(app)
    http_server.listen(8887)
    IOLoop.instance().start()

if __name__ == '__main__':
    run()