Flask-Cognito-Extended
Flask-Cognito-Extended is a Flask implementation of Amazon Cognito. This extension helps quickly implement authentication and authorization solutions based on Amazon's Cognito. It contains helpful functions and properties to handle token based authentication flows.
pip install Flask-Cognito-Extended
Usage
from flask import Flask, jsonify
from flask_cognito_extended import (
CognitoManager, login_handler,
callback_handler, get_jwt_identity
)
app = Flask(__name__)
# Setup the flask-cognito-extended extention
app.config['COGNITO_SCOPE'] = "aws.cognito.signin.user.admin+email+openid+profile"
app.config['COGNITO_REGION'] = "us-east-1"
app.config['COGNITO_USER_POOL_ID'] = "us-east-1_xxxxxxx"
app.config['COGNITO_CLIENT_ID'] = "xxxxxxxxxxxxxxxxxxxxxxxxxx"
app.config['COGNITO_CLIENT_SECRET'] = "xxxxxxxxxxxxxxxxxxxxxxxxxx" # optional
app.config['COGNITO_DOMAIN'] = "https://yourdomainhere.com"
app.config['COGNITO_REDIRECT_URI'] = "https://yourdomainhere/callback"
cognito = CognitoManager(app)
# Use @login_handler decorator on your login route
@app.route('/login', methods=['GET'])
@login_handler
def login():
return jsonify(msg="User already signed in."), 200
# Use @callback_handler decorator on your callback route
@app.route('/callback', methods=['GET'])
@callback_handler
def callback():
# fetch the unique 'sub' property of the User
current_user = get_jwt_identity()
return jsonify(logged_in_as=current_user), 200
if __name__ == '__main__':
app.run(debug=True)
Development Setup
Using pipenv
pipenv install --dev
Using virtualenv
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
Contributing
- Fork repo- https://github.com/deejungx/flask-cognito-extended/fork
- Create your feature branch -
git checkout -b feature/foo - Commit your changes -
git commit -am "Added foo" - Push to the branch -
git push origin feature/foo - Create a new pull request
Metadata
Release files for Flask-Cognito-Extended 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Flask-Cognito-Extended-0.2.7.tar.gz | 16.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| Flask_Cognito_Extended-0.2.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.8 kB
Release files / Flask-Cognito-Extended-0.2.7.tar.gz
| Download URL | Flask-Cognito-Extended-0.2.7.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
97c8ac7f716e12c1fb87ae40654475900001a6cbd3fbd109a8bcbd04169524d7
|
|
BLAKE2b-256 checksum How to use checksums |
95fb46eed6ad252c5ac81bd40144495fe49f3a151b10d8e8afe95ee77712c82f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.5
|
Release files / Flask_Cognito_Extended-0.2.7-py3-none-any.whl
| Download URL | Flask_Cognito_Extended-0.2.7-py3-none-any.whl |
|---|---|
| Size | 19.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
482d720e21047c1c7dc018d9089edfbf73f1efbadecae5b517a3a48ef8e0da01
|
|
BLAKE2b-256 checksum How to use checksums |
cb4ab37ec73727b0081bc0efa98c70efd034786ebddcfab2628bcd7da8d4485e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.5
|