Набор Zope CookieCrumbler Cook ie в Python Скрипт - PullRequest
1 голос
/ 27 марта 2020

Я знаю, что это старый вопрос, о котором я хочу спросить, но я пытаюсь найти способ, с помощью моего python сценария входа в систему, установить CookCrumbler cook ie (s), которые автоматически отправляются пользователь при успешном входе в систему и посещении ограниченного URL.

Моя цель - разрешить моему python сценарию вызывать метод az sql и перенаправлять пользователя на основе его account_type (столбец в моей базе данных). У меня все это работает прямо сейчас, но в двух разных python скриптах. Первый вход в систему пользователя и перенаправляет на второй сценарий, который вызывает метод z sql и перенаправляет пользователя соответственно. Я хотел бы, чтобы все это можно было выполнить одним скриптом, но если куки не отправляются, имя пользователя этого пользователя не сохраняется в файле cook ie и, следовательно, не может быть доступно с помощью метода z sql.

Я знаю, как истечь куки при выходе из системы, но когда я изменяю его на setCook ie, он хочет, чтобы я определил всего повара ie, что, конечно, мне нужен CookieCrumbler.

Одна из моих мыслей заключалась в том, чтобы каким-то образом заставить python незаметно попасть по безопасному URL-адресу и доставить файлы cookie в браузер пользователя, поспать 2 секунды, чтобы убедиться, что они прошли, а затем перейти к sql. 1007 *

Другой вариант, о котором я уже упоминал, - заставить CookieCrumbler отправлять куки прямо в браузер пользователя, вместо того, чтобы пытаться получить доступ к защищенному URL.

Вот код, который я сейчас имею :

import time
request = container.REQUEST
response = request.response

context.REQUEST.RESPONSE.setCookie('__ac', path='/')
context.REQUEST.RESPONSE.setCookie('__ac_name', path='/')

time.sleep(3)
for user in context.account_data_select():
    if user.account_type == 12 :
        response.redirect("https://secure.mydomain.com/secure/blah")
    else:
        response.redirect("https://secure.mydomain.com/secure")

Конечно, это не работает, потому что setCook ie требует 3 переменных (имя, значение, опции). Я не хочу устанавливать это вручную. Я хочу, чтобы CookieCrumbler сделал свое дело и предоставил соответствующие куки для браузера пользователя.

Кстати, я использую Zope 2.13.29 и не использую Plone. Просто стандартный старый Zope с Python 2.7.2

...