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

2022-09-26 11:24:29 字數 1215 閱讀 6763

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

使用這種方式的確可以獲取csrftoken的資料,下面來寫個示例來演示一下。

from django.middlwww.cppcns.comeware.csrf import get_token

# 獲取cstftoken

在urls.py配置url

from django.urls import path, re_path

from . import views

urlpatterns = [

# ex:/assetinfo/gettoken

path('gettoken', views.gettoken, name='gettoken'),

...]

使用postman測試介面,獲取 csrftoken

現在是完成了基本功能了,能否動態獲取 csrftoken,但是還有乙個跨域問題,假如跨域後就無法獲取 csrftoken 了。

我嘗試過在django中設定跨域返回的方式,但是這是不行的,因為不同的網域名稱使用 csrftoken 就基本失去了原來的防止 csrf 攻擊的意義。

最好的方式是使用 nginx 做本機的**,分別反向**前端、後端的服務,然後統一提供乙個網域名稱使用,即可使用 csrftoken 了。

當想要在 postman 中使用 csrftoken,那麼只需要將獲取的 csrftoken 值設定到 headers 中即可,如下:

如果不設定,那麼則會出現 403拒絕報錯 如下:

django前後端分離csrf解決辦法

之前學習django時,總是把那個csrf的中介軟體注釋掉,現在把這個bug修復吧。1.定義csrftoken介面,主要是為前端設定csrftoken,相關 如下 from django.middleware.csrf import get token def gettoken request to...

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...