У меня есть бэкэнд API Django REST Framework для моего приложения Vue.Я пытаюсь использовать сеансы Django для анонимных пользователей, но либо Django не отправляет, либо Axios не может прочитать cookie сеанса.
Создается новый сеанс путем проверки 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
Я пытался переключить SESSION_COOKIE_HTTPONLY
в settings.py
, но все еще не могусм. файл cookie.
При перехвате ответа файл cookie CSRF отправляется, но файл 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
})
В моих тестах API DRF я вижу, что файл 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']