# Welcome to Python Social Auth’s documentation!

Python Social Auth aims to be an easy to setup social authentication and authorization mechanism for Python projects supporting protocols like OAuth (1 and 2), OpenId and others.

The initial codebase is derived from django-social-auth with the idea of generalizing the process to suit the different frameworks around, providing the needed tools to bring support to new frameworks.

django-social-auth itself was a product of modified code from django-twitter-oauth and django-openid-auth projects.

Contents:

- Introduction
  - Features
- Installation
  - Dependencies
  - Get a copy
  - Upgrading
- Configuration
  - Configuration
  - Django Framework
  - Flask Framework
  - Pyramid Framework
  - CherryPy Framework
  - Webpy Framework
  - Porting from django-social-auth
- Pipeline
  - Authentication Pipeline
  - Disconnection Pipeline
  - Partial Pipeline
  - Email validation
- Extending the Pipeline
- Strategies
  - Description
  - Implementing a new Strategy
- Storage
  - Social User
  - Nonce
  - Association
  - Validation code
  - Storage interface
  - SQLAlchemy and Django mixins
  - Models Examples
- Exceptions
- Backends
  - Adding new backend support
  - Supported backends
- Beginners Guide
  - Understanding PSA URLs
  - Understanding Backends
  - Understanding the Pipeline
  - Interrupting the Pipeline (and communicating with views)
- Disconnect and Logging Out
- Testing python-social-auth
  - Installing dependencies
  - Tox
  - Pending
- Use Cases
  - Return the user to the original page
  - Pass custom GET/POST parameters and retrieve them on authentication
  - Retrieve Google+ Friends
  - Associate users by email
  - Signup by OAuth access_token
  - Multiple scopes per provider
  - Enable a user to choose a username from his World of Warcraft characters
  - Re-prompt Google OAuth2 users to refresh the `refresh_token`
- Thanks
- Copyrights and Licence

# Indices and Tables

- Index
- Module Index
- Search Page