{"id":23742,"library":"flask-awscognito","title":"Flask AWSCognito","description":"Flask extension for authenticating users with AWS Cognito. Version 1.3 supports Flask-Login integration and JWT token verification. Release cadence is low; last updated in 2021.","status":"maintenance","version":"1.3","language":"python","source_language":"en","source_url":"https://github.com/cgauge/Flask-AWSCognito","tags":["flask","aws","cognito","authentication","jwt"],"install":[{"cmd":"pip install flask-awscognito","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Required Flask extension.","package":"flask","optional":false},{"reason":"Required for user session management.","package":"flask-login","optional":false},{"reason":"Underlying AWS Cognito client.","package":"pycognito","optional":false}],"imports":[{"note":"Incorrect class name; the main class is AWSCognitoAuthentication.","wrong":"from flask_awscognito import FlaskAWSCognito","symbol":"AWSCognitoAuthentication","correct":"from flask_awscognito import AWSCognitoAuthentication"},{"note":"Alternative class for simpler setups.","symbol":"CognitoAuth","correct":"from flask_awscognito import CognitoAuth"}],"quickstart":{"code":"from flask import Flask, jsonify\nfrom flask_awscognito import AWSCognitoAuthentication\n\napp = Flask(__name__)\napp.config['AWS_DEFAULT_REGION'] = 'us-east-1'\napp.config['AWS_COGNITO_DOMAIN'] = 'https://your-domain.auth.us-east-1.amazoncognito.com'\napp.config['AWS_COGNITO_USER_POOL_ID'] = 'us-east-1_xxxxxxxxx'\napp.config['AWS_COGNITO_CLIENT_ID'] = 'xxxxxxxxxxxxxxxxxxxxxxxxx'\napp.config['AWS_COGNITO_CLIENT_SECRET'] = os.environ.get('CLIENT_SECRET', '')\napp.config['AWS_COGNITO_REDIRECT_URL'] = 'https://localhost:5000/aws_cognito/redirect'\n\naws_auth = AWSCognitoAuthentication(app)\n\n@app.route('/login')\ndef login():\n    return aws_auth.sign_in()\n\n@app.route('/callback')\ndef callback():\n    access_token = aws_auth.get_access_token(request.args)\n    return jsonify({'token': access_token})\n\nif __name__ == '__main__':\n    app.run(ssl_context='adhoc')","lang":"python","description":"Basic Flask app with Cognito login using AWSCognitoAuthentication."},"warnings":[{"fix":"Migrate to flask-cognito or a custom integration with pycognito.","message":"This library is in maintenance mode; consider using flask-cognito or flask-cognito-auth for newer Python/Flask versions.","severity":"deprecated","affected_versions":"all"},{"fix":"Ensure flask-login is installed and flask_login.LoginManager is initialized on the app.","message":"Requires Flask-Login to be installed and configured, even if not using its session management.","severity":"gotcha","affected_versions":"all"},{"fix":"Ensure your Cognito App Client settings in AWS have the exact redirect URL as configured in the app.","message":"In version 1.2+, the redirect URI configuration key changed from 'AWS_COGNITO_REDIRECT_URL' to 'AWS_COGNITO_REDIRECT_URL' (same name) but the library now validates that the redirect URI in the request matches exactly. Previously it was lenient.","severity":"breaking","affected_versions":">=1.2"},{"fix":"Use a valid Cognito domain and ensure network connectivity.","message":"OpenID configuration discovery fails if the AWS Cognito domain is not accessible from the server; no fallback provided.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'from flask_awscognito import AWSCognitoAuthentication' (note capital A, W, and no underscore before Authentication).","cause":"Importing an outdated or wrong class name.","error":"AttributeError: module 'flask_awscognito' has no attribute 'AWSCognitoAuthentication'"},{"fix":"If using version <1.0, use CognitoAuth; for >=1.0 use AWSCognitoAuthentication.","cause":"CognitoAuth class was renamed to AWSCognitoAuthentication in version 1.0.","error":"ImportError: cannot import name 'CognitoAuth' from 'flask_awscognito'"},{"fix":"Match the exact URI in AWS Cognito console under App client settings -> Callback URL(s).","cause":"The redirect URI in the Cognito app client settings does not match the one configured in Flask (AWS_COGNITO_REDIRECT_URL).","error":"flask_awscognito.exceptions.CognitoError: Invalid redirect URI"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}