Я хотел бы иметь сопоставление пользователей с учетными записями , а затем дать пользователям направление в пространство имен , соответствующее их учетной записи.
Взглянув на appengine_config.py
из предложенного примера , представляется несколько предложенных способов определения того, каким должно быть пространство имен, т.е.
- Имя сервера
- Домен Служб Google
- Cookie
Я хотел бы выбрать пространства имен на основе поиска в хранилище данных. т.е.
namespace = user.account.name
Для некоторого объекта user
, связанного с account
, учетная запись которого имеет поле name
. Есть несколько способов сделать это:
- поиск в хранилище данных по каждому запросу
- поиск в memcache при каждом запросе (откат к хранилищу данных по истечении срока действия memcache)
- безопасные данные cookie
Поиск в хранилище данных будет медленным. Есть ли такая бронь с поиском в memcache? например memcache.get('nslookup:%s' % user_id)
, учитывая user_id
. (Я верю, что объект users
работает, как ожидалось в appengine_config.py
).
В качестве альтернативы, можно использовать безопасный cookie для решения этой проблемы. Я не удовлетворен безопасностью флага «Безопасный» (т. Е. Форсирование SSL). Однако я не уверен, как лучше защитить данные в куки. Я полагаю, что симметричное шифрование с подписью PyCrypto с использованием секретного ключа в GAE - это один из способов начать этот путь. Хотя этот шаблон был проверен , я был бы благодарен за любые мысли относительно этого предложенного решения, в частности.
Безопасные куки не кажутся лучшим путем с идеологической точки зрения; Я уже рассчитываю на получение идентификатора пользователя, все, что мне нужно, - это сопоставление пользователя с его учетной записью - нет логической основы для шифрования, отправки, хранения, получения и расшифровки этого сопоставления при каждом запросе. Опции memcache кажутся лучшими из трех, но я был бы благодарен за мысли и вклад. Единственная причина, по которой я могу использовать безопасные куки-файлы, - это производительность или альтернатива, если доступ к memcache был недоступен в appengine_config.py
.
.
Мы приветствуем мысли, отзывы и вызовы моим предположениям.
Спасибо за чтение.
Brian