django前後端分離csrf解決辦法

2021-09-26 15:44:31 字數 1058 閱讀 6186

之前學習django時,總是把那個csrf的中介軟體注釋掉,現在把這個bug修復吧。

1.定義csrftoken介面,主要是為前端設定csrftoken,相關**如下:

from django.middleware.csrf import get_token

def gettoken(request):

token=get_token(request)

2.前端獲取token,我這裡使用axios請求的,直接請求這個介面就行,後台會直接給瀏覽器設定cookie的。

注意:如果是跨域請求,則設定不成功,因為無法跨域設定cookie,但是前後端分離專案經常執行在不同埠下,這裡我們使用nginx****下,將前端專案和後端專案**到統一介面。例如,我前端專案執行在8080埠下,後端專案執行在8000埠下,就可以這樣配置nginx的配置檔案。

3.django後台url.py**如下:

from django.contrib import admin

from django.urls import path

urlpatterns = [

path('api2/admin/', admin.site.urls),

path('api2/post_test',posttest),

path('api2/get_token',gettoken)

]

4.前端具體請求**如下:

let that=this;

const url='';

this.axios.get(url).then(res=>,

}).then(res=>)

})

最後,訪問檢視效果就可以了。

5.測試成功如圖:

Django前後端分離

分離常見的問題 http無狀態 token 前端js跨域問題 csrf spa 是否會影響seo 搜尋引擎優化 效果 是 跪舔流解決 雜湊演算法三大特點 不可逆定長 雪崩 輸入修改乙個位元組 串就會變。jwt有三部分組成。header alg 演算法,預設為hs256 typ 預設jwtpayloa...

django 前後端分離,ajax

1.直接在前端呼叫第三方的介面 三門峽今日天氣 轉 到 2.呼叫自己資料庫 帶分頁的 後端 csrf exempt def get tongzhi request code 200 msg success 獲取全部資料 tongzhis all list article.objects.filter...

Django前後端分離csrf token獲取方式

一般django開發為了保障避免 csrf 的攻擊,如果使用django的模板渲染頁面,那麼則可以在請求中渲染設定乙個csrftoken的cookie資料,但是如果需要前後端分離,不適用程式設計客棧django的模板渲染功能,怎麼來動態獲取 csrftoken 呢?程式設計客棧 使用這種方式的確可以...