Подтвердить что ты не робот

Аутентификация пользователя в пирамиде

Я создаю webapp и должен выбрать Django и Pyramid. Я решил пойти с Пирамидой.

Я понимаю, что Pyramid имеет свою собственную систему аутентификации/авторизации, которая выглядит красиво. Но я не видел нигде в Pyramid, где определены пользователи/группы/разрешения. В Django эти вещи приходят бесплатно.

Я использую SQLAlchemy и задаюсь вопросом, есть ли уже созданные пользователи/группы/разрешения, которые я могу импортировать. Я бы предпочел не определять эти объекты/сопоставления и хэш/соление паролей сам.

описания Django - это все, что мне нужно.

Может ли кто-нибудь указать на то, что я могу использовать? Или мне нужно катиться самостоятельно?

4b9b3361

Ответ 1

Pyramid имеет гораздо более гибкую систему аутентификации. И да, если вам нужно что-то простое, как концепция пользователя/группы/разрешения Django, тогда гибкость может быть страшной.

Пирамида не имеет объекта "Пользователь", так как не делает никаких предположений о том, как вы храните свои данные или какой ORM вы используете, поэтому вам не что-то вроде contrib.auth. Вам необходимо будет использовать хеш/соль паролей, используя библиотеку, такую ​​как криптогласный или passlib, оба найденные на PYPI.

Что касается желания пользователя/группы/разрешений в системе Pyramid, это можно сделать довольно просто, указав RootFactory с __acl__, который отображает группы в разрешения. Разрешения присваиваются представлениям, поэтому они обычно довольно статичны. Если вы хотите, чтобы группы (то, что пирамида называла "принципалами" ), были динамическими, что также достижимо.

Я бы предложил посмотреть на Pyramid wiki2 tutorial, а также демонстрационная версия.

Есть также несколько сторонних пакетов для поддержки авторизации в Pyramid, если вы планируете использовать SQLAlchemy. apex - это более полное решение стека, и ziggurat_foundations - это уровень более низкого уровня над SQLAlchemy, который поможет вам настроить пользователей и группы для вашего приложения.

Ваш вопрос довольно высокий, и авторизация - это "трудная проблема", поэтому я остановлюсь здесь и избегаю срыгивания учебников и ресурсов, которые уже существуют в учебниках Pyramid, на несколько сторонних примеров. Если у вас есть какие-либо конкретные вопросы, не стесняйтесь спрашивать их в другом вопросе.