2015-04-16 5 views
0

Я пытаюсь установить постоянный файл cookie для нескольких последовательных запросов. Идея состоит в том, что если запрос не содержит cookie в первую очередь, идентификатор uuid4 устанавливается в cookie под «mykey», и ответ отправляется. Все это происходит через запросы, сделанные в REST api из javascript-клиента.Проблемы настройки/чтения файлов cookie в django

Я могу видеть печенье при проверке ответа на моем браузере, но если я выполняю второй запрос, который должен не установить новое печенье, как «MyKey» уже заселен-куки сбрасывается с новым идентификатор uuid4.

Это код:

def some_view(request): 
    cookie = request.get_signed_cookie('mykey', salt='foobar', default=False) 
    # do stuff 
    response = HttpResponse(content='foo') 
    if not cookie: 
     value = str(uuid.uuid4()) 
     response.set_signed_cookie('mykey', value, salt='foobar') 
    return response 

Любые идеи? Thnx!

А.

+0

Есть ли причина, по которой вы устанавливаете этот файл cookie вместо того, чтобы просто использовать рамки сеанса? – webjunkie

+0

Да, я хочу, чтобы файл cookie оставался в браузере длительное время. Дело в том, что это ajax-запрос, который будет устанавливать/читать cookie. Для того, что я читал, кажется, что это невозможно из-за ограничений браузера. Я прав? – misterte

ответ

0

С подписанного печеньем, вы, вероятно, работаете с проблемами с HTTPOnly. Вы можете попробовать следующее:

set_signed_cookie(key, value, salt='', httponly=False) 
+0

Но разве это не повлияло бы на доступ к файлу cookie на уровне браузера? Я пытаюсь установить его и читать как на уровне сервера. Или мне нужно явно устанавливать/извлекать файлы cookie на уровне браузера, а затем отправлять cookie в качестве аргумента? – misterte