Dash Cognito Auth
Project description
Dash Cognito Auth
Dash Cognito Auth is a simple library using Cognito OAuth to authenticate and view a Dash app.
This Library uses Flask Dance and a modified version of Plotly's own dash auth for authentication.
This Library is heavily inspired by dash-google-oauth created by Lucas Chapin
Installation
$ pip install dash-cognito-auth
Basic Use
Authentication can be added to your Dash application using the CognitoOAuth
class, i.e.
from dash import Dash
from flask import Flask
from dash_cognito_auth import CognitoOAuth
server = Flask(__name__)
server.config.update({
'COGNITO_OAUTH_CLIENT_ID': ...,
'COGNITO_OAUTH_CLIENT_SECRET': ...,
})
app = Dash(__name__, server=server, url_base_pathname="/")
additional_scopes = [...]
auth = CognitoOAuth(
app,
domain='mydomain',
region='eu-west-1',
additional_scopes,
logout_url="/logout"
)
# your Dash app here :)
...
Example
This repository contains a simple Example App that demonstrates how to add Cognito authentication to your Dash app as well as the Login and Logout Flows.
Development
- Check out the repository
- Run
pip install -r requirements.txt
to install the package - Run
pip install -r requirements-dev.txt
to install additional dependencies for running the tests - If you want to run the Sample App or the end to end tests, it makes sense to deploy the Cloudformation Template in order to get a functioning User Pool + App Client
- Run the tests locally
- Use
python -m pytest tests --ignore-glob "*end_to_end*"
to exclude the integration / end to end tests that require a Cognito Setup - Use
python -m pytest tests
to run all tests
- Use
Integration Tests
There are integration tests against a Cognito User Pool + App Client, if you want to run those - either create a .env
file with this content or set the environment variables with the same name.
# Credentials for the user in the user pool
COGNITO_USER_NAME=<username>
COGNITO_EMAIL=<email-that-must-match>
COGNITO_PASSWORD=<password>
# Connection between the app and the user pool
COGNITO_DOMAIN=<just-the-prefix>
COGNITO_REGION=<aws-region-of-the-cognito-userpool>
COGNITO_OAUTH_CLIENT_ID=<app-client-id>
COGNITO_OAUTH_CLIENT_SECRET=<app-client-secret>
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dash_cognito_auth-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1a80f1cad39fa961d917e11b9a29f41dd94930ccc858edc3915831f0afa8a93 |
|
MD5 | ea1ea50d5c03e061f45bb4706f0e5f02 |
|
BLAKE2b-256 | 2d1cf95426d1a61df568f3615fa66642a24e11bcac7eaffc1422a2a7421a8ed8 |