Пользовательская аутентификация пользователя.Как это делается с лучшими практиками? - PullRequest
1 голос
/ 27 июля 2010

Я использую Google Engine App с Python. Я хочу добавить пользовательскую аутентификацию пользователя. Как это делается, с лучшими практиками?

Я хочу настраиваемую аутентификацию, потому что приложение построено на Flex, и я не хочу перенаправлять на страницу HTML.

Объект пользовательских значений выглядит следующим образом:

class User(db.Model):
   email = db.EmailProperty(required = True, indexed = True)
   masked_password = db.StringProperty(required = True)
   # maybe more things here

Я хотел бы замаскировать пароль, есть ли встроенная функция в GAE?

Тогда как я запомню текущего пользователя? Через сеансы и куки? Или что еще?

Ответы [ 2 ]

3 голосов
/ 27 июля 2010

Пароли:

Лучший способ обработки пароля - сохранить случайное значение соли для каждого пользователя и результат хеширования пароля + соли.

Когда пользователь хочет войти в систему, вычислите хеш (пароль + соль) и посмотрите, совпадает ли это с хеш-значением, которое вы сохранили при первоначальной установке пароля.Идея состоит в том, чтобы никогда не хранить пароль в открытом тексте, и что два пользователя с одним и тем же паролем не будут иметь одинаковые хэшированные значения.

Вы можете найти много примеров этого в Интернете и на SO.* Сеансы:

Существует множество способов реализации сессий, и использование файлов cookie является популярным.Я предлагаю вам использовать одну из библиотек, уже доступных для этой цели.Смотрите это сравнение библиотек .

1 голос
/ 29 июля 2010

Не применяйте собственную аутентификацию.

Отметьте начальную страницу как требуемую для аутентификации (например, "login: required" в app.yaml), а затем, когда они попадут на первую открывающую страницу, они будутпопросить их пройти проверку еще до того, как они увидят ваше приложение Flash / Flex, или, если они уже прошли проверку подлинности, они сразу перейдут в ваше приложение.

Это позволит избежать проблемы с Flash -> HTML -> Flash и позволитвы используете встроенную правильную аутентификацию (мое приложение хранит таблицу пользовательских настроек и разрешений в хранилище данных, но просто использует аутентифицированную текущую идентификационную информацию пользователя GAE в качестве ключа)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...