Посты с тэгом авторизация


Authomatic: python библиотека для аутентификации и авторизации


Практически любое веб-приложение предоставляет возможность авторизации пользователя с использованием учетной записи пользователя, в каком либо из известных социальных сервисов.

Магия авторизации происходит строго по протоколу OAuth 1.0а и OAuth 2.0 и значительно упрощает жизнь и владельцу веб-приложения и самому пользователю.

Остается сущая мелочь, реализовать нужный протокол применительно к конкретному веб-приложению. Регистрация и вход в веб сервис TheOnlyPage с использованием учетных записей Facebook, Google, LinkedIn и Microsoft Live работают благодаря python библиотеке Authomatic.

Согласно документации Authomatic обладает следующими замечательными особенностями:


Авторизация на сайтах через urllib2

sdСтандартная библиотека питона для работы с вебом — urllib2, позволяет с помощью использования различных хэндлеров добавлять различный функционал. Будь то обработка ssl, работа с cookies либо какие-то расширения http протокола. А если есть работа с cookies, то значит можно авторизироваться на различных сайтах и ходить по «закрытой» их части

Для примера, залогинимся на лоре

Сначала нам требуется создать объект, который будет хранить наши куки, этот объект создается из библиотеки cookielib

import cookielib
 
cookie = cookielib.CookieJar()

После этого, создаем объект opener из urllib2, собственно, для общения по протоколу http с добавлением cookie хэндлера

import 


Простая авторизация для Pylons

Авторизация – важная часть почти каждого сайта. Сейчас имеется большое количество фреймворков для Pylons (или просто WSGI), которые позволяют «легко» организовать авторизацию на сайте. Как показывает практика легко понятие совсем относительное. И если  для Вашего сайта не требуются OpenID  или другие, пока не очень распространенные методы авторизации, то проще сделать авторизацию самостоятельно. Что я и сделал (:

Организация БД и вспомогательные функции

Для начала надо определится с таблицей юзеров в БД. Обычно это выглядит примерно так.

Называть таблицу Users лучше не надо. На это ругаются многие либы.

class Member(Base) :
        __tablename__ = "members"
        id = Column(Integer, primary_key=True) # Уникальный id юзера
        name = Column(String)