Я хотел бы иметь сопоставление пользователей с учетными записями , а затем перенаправлять пользователей на пространство имен , соответствующее их учетной записи.
Посмотрев на appengine_config.py
из предлагаемого примера , кажется, есть несколько предлагаемых способов определения каким должно быть пространство имен, т.е.
Я хотел бы, чтобы пространства имен выбирались на основе поиска в хранилище данных. т.е.
namespace = user.account.name
Для некоторого объекта пользователя
, который связан с учетной записью
, у этой учетной записи есть поле имя
. Я предложил несколько способов для этого:
Поиск в хранилище данных будет два медленных. Есть ли такое резервирование при поиске в кэше памяти? например, memcache.get ('nslookup:% s'% user_id)
, учитывая user_id
. (Я полагаю, что объект users
работает должным образом в appengine_config.py
).
В качестве альтернативы, для решения этой проблемы можно использовать безопасный файл cookie. Меня не устраивает безопасность флага «Безопасный» (т.е. принудительное использование SSL). Однако я не уверен, как лучше всего защитить данные в файле cookie. Я полагаю, что симметричное шифрование с подписью с PyCrypto с использованием секретного ключа в GAE - это один из способов начать работу по этому пути. Хотя этот шаблон был проверен , я был бы благодарен за любые мысли по поводу этого предлагаемого решения, в частности.
Защищенные файлы cookie не кажутся лучшим путем с идеалогической точки зрения; Я уже ожидаю, что у меня будет личность пользователя, все, что мне нужно, это сопоставление пользователя с его учетной записью - нет логической основы для шифрования, отправки, хранения, получения и дешифрования этого сопоставления при каждом запросе. Параметры кэша памяти кажутся лучшими из трех, но я Буду благодарен за мысли и вклад. Единственная причина, по которой я могу использовать безопасные файлы cookie, - это производительность или, как вариант, если доступ к кэшу памяти был недоступен в appengine_config.py
.
Мысли, вводные данные и возражения против моих предположений приветствуются.
Спасибо за внимание.
Брайан
Я думаю что безопасные файлы cookie — это то, что нужно, потому что они достаточно быстры. Базовая реализация, извлеченная из Tornado, находится здесь (вам нужен только класс SecureCookie, и вы можете игнорировать «сеанс»):
http://code.google.com/p/webapp-improved/source/browse/extras/ session.py#104