美文网首页
Tornado框架的用户认证和登录--session的应用(七)

Tornado框架的用户认证和登录--session的应用(七)

作者: 梦捷者 | 来源:发表于2020-04-15 08:55 被阅读0次

session的简单应用(要设置cookie_secret 签名防止进行伪造)

1、引入pycket库

  • 在虚拟环境下进行安装
pip install pycket
pip install redis
  • 在settings进行相应的配置
settings={
            'pycket' : {
                'engine': 'redis',
                'storage': {
                    'host': 'localhost',
                    'port': 6379,
                    # 'password': '',
                    'db_sessions': 5,  #redis db index
                    'db_notifications': 11,
                    'max_connections': 2 ** 30, #最大连接数2的30次方
                },
                'cookies': {
                    'expires_days': 30,
                },
            }
}

2、self.session的使用,主要有self.session.get 来获取, self.session.set 来设置

  • 进行session的获取和设置(其他的都一样)
from pycket.session import  SessionMixin
class BaseHandler(tornado.web.RequestHandler,SessionMixin):
    def get_current_user(self):
        # return self.get_secure_cookie("define_cookie")
        return self.session.get('username_session')
class LoginHandler(BaseHandler):
    def get(self):
        next_url = self.get_argument('next', '/template')
        if self.current_user:
            print("此时的cookie键所对应的值为{}".format(self.current_user))
            # self.render("8welcome.html", username=self.current_user)
            self.redirect(next_url)
        else:
            self.render('7login.html', next_url=next_url)

    def post(self):
        next_url = self.get_argument('next_url', '/template')
        username = self.get_argument("username")
        password = self.get_argument("password")
        if auth(username, password):
            print(hash(password)
            self.session.set("username_session", username)
            self.write("Your cookie was not set yet!"+"在此之后就会被设置")
            self.redirect(next_url)
        else:
            self.write("密码或者用户名出错,还有绝对不可以为空哦")

3、扩展知识
Cookie和Session的作用和工作原理 - CSDN博客
为什么要在密码里加点“盐” | Libuchao's blog

相关文章

网友评论

      本文标题:Tornado框架的用户认证和登录--session的应用(七)

      本文链接:https://www.haomeiwen.com/subject/qpdluctx.html