Skip to content

Latest commit

 

History

History
260 lines (137 loc) · 3.69 KB

overview.rst

File metadata and controls

260 lines (137 loc) · 3.69 KB

Overview

Requirements

  • Python 3.5, 3.6, 3.7 or 3.8
  • Django (2.0+)
  • python-openid or python3-openid (depending on your Python version)
  • requests and requests-oauthlib

Supported Flows

  • Signup of both local and social accounts
  • Connecting more than one social account to a local account
  • Disconnecting a social account -- requires setting a password if only the local account remains
  • Optional instant-signup for social accounts -- no questions asked
  • E-mail address management (multiple e-mail addresses, setting a primary)
  • Password forgotten flow
  • E-mail address verification flow

Supported Providers

  • 23andMe (OAuth2)
  • 500px
  • AgaveAPI (OAuth2)
  • Amazon (OAuth2)
  • Amazon Cognito (OAuth2)
  • AngelList (OAuth2)
  • Apple ("OAuth2")
  • Asana (OAuth2)
  • Auth0 (OAuth2)
  • Authentiq (OAuth2)
  • Azure (OAuth2)
  • Baidu (OAuth2)
  • Basecamp (OAuth2)
  • Battle.net (OAuth2)
  • Bitbucket (OAuth, OAuth2)
  • Bitly (OAuth2)
  • Box (OAuth2)
  • CERN (OAuth2)
  • Coinbase (OAuth2)
  • Dataporten (OAuth2)
  • Daum (OAuth2)
  • Digital Ocean (OAuth2)
  • Discord (OAuth2)
  • Disqus (OAuth2)
  • Douban (OAuth2)
  • Doximity (OAuth2)
  • Draugiem
  • Dropbox (OAuth, OAuth2)
  • Dwolla (OAuth2)
  • Edmodo (OAuth2)
  • Edx (open.edx.org) (OAuth2)
  • Eve Online (OAuth2)
  • Eventbrite (OAuth2)
  • Evernote (OAuth)
  • Exist (OAuth2)
  • Facebook (both OAuth2 and JS SDK)
  • Feedly (OAuth2)
  • Figma (OAuth2)
  • Firefox Accounts (OAuth2)
  • Flickr (OAuth)
  • FourSquare (OAuth2)
  • Github (OAuth2)
  • GitLab (OAuth2)
  • Globus (OAuth2)
  • Google (OAuth2)
  • Hubic (OAuth2)
  • Instagram (OAuth2)
  • JupyterHub (OAuth2)
  • Kakao (OAuth2)
  • Keycloak (OAuth2)
  • Line (OAuth2)
  • LinkedIn (OAuth, OAuth2)
  • Mail.Ru (OAuth2)
  • MailChimp (OAuth2)
  • Meetup (OAuth2)
  • Microsoft (Graph) (OAuth2)
  • Naver (OAuth2)
  • NextCloud (OAuth2)
  • Odnoklassniki (OAuth2)
  • Okta (OAuth2)
  • OpenId
  • OpenStreetMap (OAuth)
  • ORCID (OAuth2)
  • Patreon (OAuth2)
  • Paypal (OAuth2)
  • Persona
  • Pinterest (OAuth2)
  • QuickBooks (OAuth2)
  • Reddit (OAuth2)
  • Robinhood (OAuth2)
  • Salesforce (OAuth2)
  • ShareFile (OAuth2)
  • Shopify (OAuth2)
  • Slack (OAuth2)
  • SoundCloud (OAuth2)
  • Spotify (OAuth2)
  • Stack Exchange (OAuth2)
  • Steam (OpenID)
  • Stocktwits (OAuth2)
  • Strava (OAuth2)
  • Stripe (OAuth2)
  • Telegram
  • Trello (OAuth)
  • Tumblr (OAuth)
  • Twitch (OAuth2)
  • Twitter (OAuth)
  • Untappd (OAuth2)
  • Vimeo (OAuth, OAuth2)
  • VK (OAuth2)
  • Weibo (OAuth2)
  • Weixin (OAuth2)
  • Windows Live (OAuth2)
  • Xing (OAuth)
  • Yahoo (OAuth2)
  • Yandex (OAuth2)
  • YNAB (OAuth2)
  • Zoho (Oauth2)
  • Zoom (OAuth2)

Note: OAuth/OAuth2 support is built using a common code base, making it easy to add support for additional OAuth/OAuth2 providers. More will follow soon...

Features

  • Supports multiple authentication schemes (e.g. login by user name, or by e-mail), as well as multiple strategies for account verification (ranging from none to e-mail verification).
  • All access tokens are consistently stored so that you can publish wall updates etc.

Architecture & Design

  • Pluggable signup form for asking additional questions during signup.
  • Support for connecting multiple social accounts to a Django user account.
  • The required consumer keys and secrets for interacting with Facebook, Twitter and the likes are to be configured in the database via the Django admin using the SocialApp model.
  • Consumer keys, tokens make use of the Django sites framework. This is especially helpful for larger multi-domain projects, but also allows for easy switching between a development (localhost) and production setup without messing with your settings and database.