簡體   English   中英

Axios不存儲Django會話cookie

[英]Axios not storing Django session cookie

我的Vue應用程序有一個Django REST Framework API后端。 我正在嘗試為匿名用戶使用Django會話,但是Django沒有發送,或者Axios無法讀取會話cookie。

通過檢查Session.objects.all().count()創建一個新會話Session.objects.all().count()

我正在嘗試使用JWTAuthentication為經過身份驗證的用戶存儲購物車數據,並為匿名用戶存儲SessionAuthentication

# settings.py

CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = (
    'localhost:8080',
    '127.0.0.1:8080',
)

SESSION_COOKIE_HTTPONLY = False

我試過在settings.py切換SESSION_COOKIE_HTTPONLY ,但仍然無法看到cookie。

攔截響應時,會發送CSRF cookie,但不包括會話cookie。

import axios from 'axios'
import Cookie from 'js-cookie'

axios.defaults.xsrfCookieName = 'csrftoken'
axios.defaults.xsrfHeaderName = 'X-CSRFToken'
axios.defaults.withCredentials = true
axios.interceptors.response.use(response => {
    const sessionCookie = Cookie.get()
    console.log('Cookie', sessionCookie)
    return response
})

在我的DRF API測試中,我可以看到會話cookie在響應中。

Set-Cookie: sessionid=zgndujlppk4rnn6gymgg1czhv1u0rqfc; expires=Thu, 11 Apr 2019 11:27:32 GMT; HttpOnly; Max-Age=1209600; Path=/; SameSite=Lax

class Test(APITestCase):
    def test_get(self):
        response = self.client.get('/store/1/')
        print(response.cookies['sessionid']

問題是我在URL localhost:8080訪問該站點,但cookie保存在127.0.0.1下。

將URL更改為127.0.0.1:8080解決了該問題。

暫無
暫無

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

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