Задать вопрос
@ynchk1

Как обратиться к cookie csrf токена из javascript?

Проблема следующая:
При попытке обратиться к серверу, для получения csrf токена, последний устанавливается в cookie. Однако, обратиться к нему из js нельзя. (параметр httponly=False)

Запрос:
export const getCsrf = createAsyncThunk('user/get-csrf', async () => {
    const response = await axios.get(`${host}/api_users/csrf/`, 
            { withCredentials: true }
        );

    return response.data
})


Ендпоинт:
@api_view(http_method_names=['GET'])
def csrf(request): 
    response = Response({'status': 'ok'})
    response.set_cookie(
        'csrftoken',
        get_token(request),
        samesite='None',
        httponly=False,
        secure=True
    )
    return JsonResponse({'csrftoken': get_token(request)})


Я подозреваю что проблема может крыться в параметре samesite='None', но при попытке заменить на значение 'Lax' выходит следующая ошибка:


This attempt to set a cookie via a Set-Cookie header was blocked because it had the "SameSite-Lax" attribute but came
from a cross-site response which was not the response to a top-level navigation.
  • Вопрос задан
  • 19 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы