Social connections powered by Authlib. This library is a part of Authlib project. It works well with Authlib v0.7+.
from flask import Flask
from authlib.flask.client import OAuth
from loginpass import create_flask_blueprint, GitHub
app = Flask(__name__)
oauth = OAuth(app)
def handle_authorize(remote, token, user_info):
if token:
save_token(remote.name, token)
if user_info:
save_user(user_info)
return user_page
raise some_error
github_bp = create_flask_blueprint(GitHub, oauth, handle_authorize)
app.register_blueprint(github_bp, url_prefix='/github')
- Authlib Homepage: https://authlib.org/
- Authlib Repository: https://github.com/lepture/authlib
Authlib Loginpass contains lots of connections (see below), every connection has a
profile()
method which returns the same format of user info. It supports OAuth 1,
OAuth 2 and OpenID Connect for now.
The user info that profile()
returns is standardized with OpenID Connect UserInfo
claims,
not something made by me.
Connections that Authlib Loginpass contains:
- GitHub
- Gitlab
- Dropbox
- Azure
- Discord
- Slack
- Jira
- StackOverflow
- Bitbucket
- Auth0
- Strava
- Spotify
- Yandex
- Twitch
- VK
Loginpass is just a simple wrapper around Authlib, it is configured apps ready to use with Flask and Django. Checkout the examples for details.
Loginpass is a group member of Authlib, it is licensed under BSD. Authlib commercial license applies to this project too, you can get a commercial license at Authlib Commercial Plans.