simpleauth е проста обвивка автентикация за Google App Engine ап един.
Поддържани характеристики:
& Nbsp; - OAuth 2.0
& Nbsp; - OAuth 1.0 (а)
& Nbsp; - OpenID
Поддържани доставчици на кутията:
& Nbsp; - Google (OAuth 2.0)
& Nbsp; - Facebook (OAuth 2.0)
& Nbsp; - Windows Live (OAuth 2.0)
& Nbsp; - Twitter (OAuth 1.0a)
& Nbsp; - LinkedIn (OAuth 1.0a)
& Nbsp; - OpenID, използвайки App Engine потребители модул API
<Силен> Първи стъпки
1. Инсталирайте библиотеката на локалния ви Mac / PC с един от:
& Nbsp; а. "Easy_install -U simpleauth"
& Nbsp; б. "PIP инсталирате simpleauth"
& Nbsp; гр. клонинг на източник репо сделка, например "Git клонинг Git: //github.com/crhym3/simpleauth.git"
2. Поставете SUBDIR нарича "simpleauth" в приложението си корен.
3. Също така ще трябва да се питон-OAuth2 (PIP инсталирате OAuth2) и httplib2 (http://code.google.com/p/httplib2/)
3. Създаване на заявките от subclassing SimpleAuthHandler, напр
& Nbsp; & Nbsp; клас AuthHandler (SomeBaseRequestHandler, SimpleAuthHandler):
& Nbsp; & Nbsp; & Nbsp; & Nbsp; "" "Удостоверяване манипулатор за всички видове AUTH." ""
& Nbsp; & Nbsp; & Nbsp; & Nbsp; Def _on_signin (самостоятелно, данни, auth_info, доставчик):
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; "" "Обр когато нов или съществуващ потребител е да влезете.
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; данните е информацията за потребителския си речник.
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; auth_info съдържа кода за достъп или OAuth знак и тайна.
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; Вижте какво има в него с logging.info (данни, auth_info)
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; "" "
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; auth_id = auth_info ['ID']
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # 1. Проверете дали потребителското съществува, напр
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # & Nbsp; & Nbsp; & Nbsp; User.get_by_auth_id (auth_id)
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; #
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # 2. създадете нов потребител, ако това не е така
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # & Nbsp; & Nbsp; & Nbsp; Потребителят (** данни) .put ()
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; #
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # 3. влизане на потребителя
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # & Nbsp; & Nbsp; & Nbsp; self.session ['_ user_id'] = auth_id
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; #
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # 4. пренасочи някъде, например self.redirect ("/ профил")
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; #
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # Вижте повече за това как да работят по-горе стъпки тук:
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # Http://webapp-improved.appspot.com/api/webapp2_extras/auth.html
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; # Http://code.google.com/p/webapp-improved/issues/detail?id=20
& Nbsp; & Nbsp; & Nbsp; & Nbsp; Def Изход (самостоятелно):
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; self.auth.unset_session ()
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; self.redirect ("/")
& Nbsp; & Nbsp; & Nbsp; & Nbsp; Def _callback_uri_for (самостоятелно, доставчик):
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; върнете self.uri_for ("auth_callback", доставчик = доставчик, _full = True)
& Nbsp; & Nbsp; & Nbsp; & Nbsp; Def _get_consumer_info_for (самостоятелно, доставчик):
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; "" "Трябва да се върне на кортеж (ключ, секретен) за AUTH инициализиращите искания.
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; За OAuth 2.0 вие също трябва да се върне на обхват, напр
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; ("Моя ап ID", "моя ап тайна", "имейл, user_about_me")
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; Обхватът depens единствено на доставчика.
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; Вижте например / secrets.py.template
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; "" "
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; върнете secrets.AUTH_CONFIG [доставчик]
Имайте предвид, че SimpleAuthHandler не е истински заявките. Зависи от теб. Например, SomeBaseRequestHandler може да бъде webapp2.RequestHandler.
4. Добавете маршрутизация, така че "/ AUTH / ДОСТАВЧИК", "/ AUTH / ДОСТАВЧИК / обаждане" и "/ Logout" искания отиват да си AuthHandler.
& Nbsp; & Nbsp; Така например, в webapp2 бихте могли да направите:
& Nbsp; & Nbsp; # Карта URL адреси към товарачи
& Nbsp; & Nbsp; маршрути = [
& Nbsp; & Nbsp; & Nbsp; & Nbsp; Route ("/ AUTH /",
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; манипулатор = "handlers.AuthHandler: _simple_auth", име = "auth_login"),
& Nbsp; & Nbsp; & Nbsp; & Nbsp; Route ("/ AUTH // обаждане",
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; манипулатор = "handlers.AuthHandler: _auth_callback", име = "auth_callback"),
& Nbsp; & Nbsp; & Nbsp; & Nbsp; Route ("/ Изход",
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; манипулатор = "handlers.AuthHandler: излезте", име = "Изход")
& Nbsp; & Nbsp; ]
5. Това е всичко. Вижте проба приложение в пример реж а.
За да стартирате например приложението, копирате пример / secrets.py.template в пример / secrets.py и стартирате приложението на местно ниво, като изпълнява run.sh
Какво ново в тази версия :
- защита CSRF за OAuth 2.0 http://code.google.com/p/gae-simpleauth/issues/detail?id=1
- Персонализирани изключения http://code.google.com/p/gae-simpleauth/issues/detail?id=2
- подобрения Пример за приложения, в това число:
- CSRF охрана
- изключване на предаване на съобщения за демо цели
- -хубава продукция на сесията, данните в профила и auth_info речници
- https://github.com/crhym3/simpleauth/issues/4
- https://github.com/crhym3/simpleauth/issues/5
- Още полезна информация в README
<силни> Изисквания :
- Python
- OAuth2
- lxml
- httplib2
Коментари не е намерена