Tornado基础入门(三) 用户身份验证框架、安全机制
程序员文章站
2024-03-19 14:18:46
...
文章目录
一、安全cookie机制
- tornado通过requestHandler的set_cookie()方法和get_cookie()方法对cookie进行操作
- tornado通过tornado.web.Application初始化时赋予参数cookie_secret对cookie进行加密
'''
通过RequestHandler get_cookie()和set_cookie()方法,能够方便的对cookie()进行读写。
'''
import tornado.web
from tornado.web import Application
import uuid
import tornado.ioloop
class MainHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
if not self.get_cookie("session"):
self.set_cookie("session", str(uuid.uuid4()))
else:
print(self.get_cookie("session"))
self.write("your session was set!")
if __name__ == "__main__":
app = Application([
(r"/hello", MainHandler)
], cookie_secret="SECRET_DONT_LEAK")
app.listen(8008)
tornado.ioloop.IOLoop.current().start()
关键点和技巧
- tornado.web.Application对象初始化时,赋予cookie_secret参数,该参数用来讲cookie加密。
- 在读取cookie的时候,用get_secure_cookie()方法替换get_cookie()方法。
- 在写cookie的时候,用set_secure_cookie()方法替换set_cookie()方法。
'''
使用get_secure_cookie()和set_secure_cookie()替换原来的get_cookie()和set_cookie()方法
'''
import tornado.web
from tornado.web import Application
import uuid
import tornado.ioloop
class MainHandler(tornado.web.RequestHandler):
# get_secure_cookie()获取了最原始的cookie,get_cookie()方法获取到加密后的cookie
def get(self, *args, **kwargs):
if not self.get_secure_cookie("session"):
self.set_secure_cookie("session", str(uuid.uuid4()))
else:
print(self.get_secure_cookie("session"))
print(self.get_cookie("session"))
self.write("your session was set!")
if __name__ == "__main__":
app = Application([
(r"/hello", MainHandler)
], cookie_secret="SECRET_DONT_LEAK")
app.listen(8008)
tornado.ioloop.IOLoop.current().start()
访问localhost:8008/hello, 打印结果:
b'cdfa1bf0-7f2f-4a4b-b499-0f082f293c0a'
2|1:0|10:1602836493|7:session|48:Y2RmYTFiZjAtN2YyZi00YTRiLWI0OTktMGYwODJmMjkzYzBh|940288a73f7fbb72b02ec96c70af1bae07c196c554fef1021584743e421a8501
上一篇: JavaScript 学习笔记 之 类型
下一篇: Spring Security的使用