簡體   English   中英

使用React和axios禁止(未設置CSRF cookie)

[英]Forbidden (CSRF cookie not set.) with React and axios

我一直在React中使用一個登錄組件,該組件可以將用戶名和密碼信息發送到django主機127.0.0.1:8000/api-auth/login/,當我嘗試發送時,django服務器顯示此消息“ Forbidden (未設置CSRF cookie。):/ api-auth / login /“

我曾嘗試在我的應用程序設置中檢查django cors選項,但沒有任何效果,我也嘗試發送一些標頭以及發布請求。

這是我的cors設定

CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = (
        'http://localhost:3000',        
)
CORS_ALLOW_HEADERS = (
    'csrftoken',
    'content-type',
    'X-CSRFTOKEN'
)
CSRF_COOKIE_NAME = "csrftoken"
CSRF_HEADER_NAME = 'X-CSRFTOKEN'

這是我的要求

handleSubmit = event =>{

     var csrfCookie = Cookies.get('csrftoken'); 
     console.log('csrf cookie: ', csrfCookie); // set to undefined

     axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";
     axios.defaults.xsrfCookieName = "csrftoken";
     axios.defaults.withCredentials = true;

     axios
          .post( 'http://127.0.0.1:8000/api-auth/login/', {
                    username : this.state.username,
                    password : this.state.password
                },{
                    headers: {"csrftoken": csrfCookie},
                })
          .then(res => console.log('Results: ' + res))
          .catch(err => console.log('Login error: ' + err))
}

注意 :我的任何視圖都沒有@csrf_exempt

請在您的設置文件中添加CSRF_COOKIE_SECURE = True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM