Tornado - Authentication - tornado.web.authenticated经典写法,带认真

本文介绍了一个使用Python Tornado框架实现的基本网站认证系统。通过设置装饰器@tornado.web.authenticated来保护页面,并利用secure_cookie进行用户身份验证。此外,还展示了如何设置登录和登出流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://gist.github.com/3342719




import tornado.ioloop
import tornado.web

class Main(tornado.web.RequestHandler):
        def get_current_user(self):
                return self.get_secure_cookie("user")

        @tornado.web.authenticated
        def get(self):
## This work is achieved by decorator @tornado.web.authenticated
                #if not self.current_user:
                #       self.redirect("/login")
                #       return
                username = self.current_user
                self.write('Hi there, '+ username)

class Login(Main):
        def get(self):
                self.render('auth.html')
        def post(self):
                self.set_secure_cookie("user", self.get_argument("username"))
                self.redirect("/")

settings = {
        "cookie_secret":"61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",
        "login_url":"/login",
        "debug":"True",
        }
application = tornado.web.Application([
        (r"/", Main),
        (r"/login", Login),
        (r"/(style\.css)",tornado.web.StaticFileHandler, {"path": "./css/"}),
        ], **settings)

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值