csrf_token之全局認證與局部認證

一、settings.py沒有註釋到csrf。當post請求的方式會報錯。django

接下來就解決問題!cookie

1. django中間件 最多5個 - process_request 請求 - process_view - process_response 相應 - process_exception 異常 - process_render_template 2. 中間件執行流程: process_request>路由匹配 找到函數不執行>process_view >視圖函數>process_response 3. 中間件的做用 - 權限 - 用戶登陸驗證 4. django的csrf實現功能: csrf在process_view方法 - 檢查視圖是否被@csrf_exempt(免除csrf認證) - 去請求體或cookie中獲取token

1.FBV:狀況一:csrf打開,個別不須要csrf認證。在方法的上方加@csrf_exempt 。這是全局使用csrf。函數

2.FBV:狀況二:csrf註釋,個別須要csrf認證。加@csrf_protect ,這是局部使用csrf。post

1.CBV:狀況一:csrf打開,個別不須要csrf認證。@method_decorator  全局使用csrf。spa

運行結果:加在單獨方法上是不行的,仍是會報錯。  3d

方式一:code

方式二:加載class類上,指定方法名。裝飾的位置不同。csrf

總結: - 本質,基於反射來實現 - 流程:路由,view,dispatch(反射) - 取消csrf認證(裝飾器要加到dispatch方法上且method_decorator裝飾) 擴展: - csrf - 基於中間件的process_view方法 - 裝飾器給單獨函數進行設置(認證或無需認證)
相關文章
相關標籤/搜索