Аутентификация приложения B2B в GAE - учетные записи Google или пользовательская база (Django или Web2Py)? - PullRequest
1 голос
/ 19 декабря 2011

Какие из них вы бы выбрали для приложения B2B (нацеленного на малый / средний бизнес), построенного на GAE с python:

  • Аккаунты Google
  • Пользовательские пользователи с Django
  • Пользовательские пользователи с Web2Py

Мне очень хочется пойти по пути учетных записей Google, поскольку он очень хорошо интегрирован в GAE и заботится обо всем - от создания пользователя до аутентификации сеанса и дажезаботится о забытых паролях.Однако я уверен, что в этом есть существенные недостатки, в том числе простота использования, но если вы начинаете с нуля, какой подход вы бы выбрали и почему?

Ответы [ 4 ]

2 голосов
/ 20 декабря 2011

Учетные записи Google вынуждают пользователей иметь учетные записи Google Apps или Gmail. Некоторым клиентам это может не понравиться.

Сворачивать свои собственные данные - это (ненужное) бремя: вам необходимо пройти процедуру регистрации (с подтверждением по электронной почте и / или подтверждением по электронной почте от третьей стороны), вести все пользовательские записи, обеспечивать безопасность и т. Д.

Я бы посоветовал вам перейти с OpenID: http://code.google.com/appengine/docs/python/users/overview.html#Authentication_Options

2 голосов
/ 20 декабря 2011

Я начал с учетной записи Google, добавил все OpenID и быстро обнаружил, что единственными учетными записями, которые люди используют для моего сайта, являются учетные записи Google и Facebook. Так что теперь у меня есть только логин с Google и логин с Facebook. Но я собираюсь добавить свои собственные учетные записи, и я делаю это с webapp2 вместо django и вместо web2py. Я попробовал web2py, но webapp2 и его модель аутентификации кажутся намного лучше и не похожи на web2py с большим количеством ненужного кода, который не предназначен для движка приложений.

Попробуйте это и его модель аутентификации (есть пример кода от http://code.google.com/p/webapp-improved/issues/detail?id=20), и я надеюсь, что он будет работать для вас.

1 голос
/ 20 декабря 2011

Я понял, что этот вопрос был только об аутентификации после того, как я написал это, поэтому большинство вещей здесь - оффтоп, но я просто хотел демотивировать использование полнофункциональных решений, таких как django или web2py, в appengine.

Я могу рассказать вам кое-что о django, потому что я использовал его больше года, и мне это нравится для определенных типов сайтов. Это был первый фреймворк, который я пытался использовать в appengine, и я отбросил его через две недели.

Это вещи в django, которые не работают или не имеют смысла в appengine:

  • модели django и orm : предназначены для sql; appengine sdk имеет свои модели.
  • сайт администратора django : предназначен для баз данных sql, не работает на appengine
  • автоформ от моделей : предназначен для моделей Django
  • команды управления django : ни одна из команд, поставляемых с django, не подходит для работы с appengine SDK.
  • сервер разработки django : appengine sdk имеет собственный сервер разработки, сервер django не работает.
  • django архитектура "подключаемых приложений" : по крайней мере в моей практике это было бесполезно для appengine.
  • сборщик статических файлов : отличный инструмент для сбора статических файлов из различных приложений многократного использования в одну папку, только если у вас много приложений многократного использования.

Существует проект django-nonrel, в котором говорится, что он может запускать django с административным сайтом на appengine. Это может, с половиной вещей, работающих и много ошибок. Вы проводите больше времени, пытаясь исправить то, что не работает, чем строить вещи.

Что может быть полезно из фреймворка django:

  • формы django : можно обменять на лучшую библиотеку WTForms
  • маршрутизация по URL-адресу django : вместо
  • объекты запросов / ответов django и исключения HTTP : вместо него можно использовать Werkzeug
  • django Исключения красивой печати : Werkzeug делает это лучше, добавляет веб-отладчик .
  • django i18n и локализация : можно изменить с помощью babel
  • django templates : jinja2 похож и намного быстрее, что важно, потому что appengine является дорогой платформой. Модуль ctypes требуется для отладки ошибок в шаблонах jinja, однако ctypes запрещен в appengine, но на сервере разработки работает , для отладки вам не нужно больше.

На самом деле Jinja2, Werkzeug, WTForms и babel настолько круты, что для каждого из них существуют проекты, интегрирующие их с django.

Я знаю две платформы, которые используют эти библиотеки:

  • kay-framework : сделано для appengine, немного устарело, но отличный пример того, как вы можете использовать Jinja2, babel и Werkzeug на appengine.
  • фляга от Армина Ронахера, человека, стоящего за Веркзойгом и Джинджей2.

Я не использовал web2py, однако, поскольку это также полнофункциональный фреймворк, как у django, я думаю, что он будет таким же плохим, как и django. Решения с полным стеком просто не подходят для этой другой среды. Простые библиотеки подходят для любой среды.

1 голос
/ 19 декабря 2011

Почему оба создают пользователя Django из пользователей Google. Вы сможете адаптировать пользователя вашей системы к другой системе далее

...