tornado设置cookie和seesion
請(qǐng)求過程
- 開始是get請(qǐng)求,因?yàn)闆]有cookie,返回預(yù)登錄表單
- 提交時(shí)post同時(shí)設(shè)置了cookie
- 以后訪問該路由都是登錄的狀態(tài)
- 當(dāng)刪除cookie又回到?jīng)]又設(shè)置的狀態(tài)
但是cookie的信息明顯出現(xiàn),應(yīng)該要加密
只需要加set_cookie改為set_secure_cookie 同時(shí)設(shè)置cookie_secret 加密的東西 隨便寫
如何想將此cookie用于其他頁面
通過定義get_current_user方法
渲染時(shí)在調(diào)用self.current_user
有cookie的情況
沒有cookie的情況
當(dāng)然還可以通過裝飾器來設(shè)置,如何沒有登錄狀態(tài),就直接跳轉(zhuǎn)到其他頁面
只需要設(shè)置@tornado.web.authenticated和login_url
對(duì)于用戶來說
如何沒有登錄,就應(yīng)該去登錄,然后返回原頁面,所以next_url設(shè)置登錄的頁面,當(dāng)?shù)卿洺晒?#xff0c;設(shè)置了cookie,然后放回該頁面
那么如何實(shí)現(xiàn)
一開始沒有登錄狀態(tài),就跳轉(zhuǎn)到登錄界面temp,從中得到url中的參數(shù)next_url,然后通過用戶登錄成功設(shè)置cookie,從post請(qǐng)求方法中的得到next_url,也就是一開始頁面
一開始訪問extends,因?yàn)闆]有登錄狀態(tài),跳轉(zhuǎn)到temp中
登錄頁面,得到cookie
返回extends
設(shè)置session
對(duì)于cookie是存放瀏覽器中,一點(diǎn)都不安全,沒錯(cuò)最好的辦法是存在服務(wù)器
安裝好pycket 和redis
pycket = {# 引擎'engine': 'redis','storage': {'host': 'localhost',#ip'port': 6379, #端口# 'password': '', #是否需要密碼'db_sessions': 5, # redis db index'db_notifications': 11,'max_connections': 2 ** 30,},'cookies': {'expires_days': 30, #存放天數(shù)},}from pycket.session import SessionMixin 導(dǎo)入pycket
定義basehandler繼承sessoinMixin類 和get_current_user來得到session
同樣繼承baseHandler
看下redis
官網(wǎng):http://www.tornadoweb.org/en/stable/guide/security.html
總結(jié)
以上是生活随笔為你收集整理的tornado设置cookie和seesion的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王野电动车怎么解除p按键?
- 下一篇: tornado上传图片