Проблема следующая:
При попытке обратиться к серверу, для получения 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.