Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
CognitoAuth
✓ from flask_cognito import CognitoAuth
✗ from flask_cognito import cognito
Old import path or mistaken module name.
cognito_auth_required
✓ from flask_cognito import cognito_auth_required
✗ from flask_cognito.auth import cognito_auth_required
Function is exposed at package level.
current_cognito_jwt
✓ from flask_cognito import current_cognito_jwt
✗ from flask import g
Use the provided object, not Flask's g for JWT payload.
Initialize CognitoAuth with Flask app config (region, domain, pool ID, client ID) and protect routes with @cognito_auth_required.
import os
from flask import Flask
from flask_cognito import CognitoAuth, cognito_auth_required
app = Flask(__name__)
app.config['AWS_DEFAULT_REGION'] = os.environ.get('AWS_DEFAULT_REGION', 'us-east-1')
app.config['AWS_COGNITO_DOMAIN'] = os.environ.get('AWS_COGNITO_DOMAIN', 'https://your-domain.auth.us-east-1.amazoncognito.com')
app.config['AWS_COGNITO_USER_POOL_ID'] = os.environ.get('AWS_COGNITO_USER_POOL_ID', '')
app.config['AWS_COGNITO_CLIENT_ID'] = os.environ.get('AWS_COGNITO_CLIENT_ID', '')
cogauth = CognitoAuth(app)
@app.route('/protected')
@cognito_auth_required
def protected():
return 'Hello, user!'
if __name__ == '__main__':
app.run()
Errors
Common errors & fixes
AttributeError: module 'flask_cognito' has no attribute 'CognitoAuth'
Incorrect import or outdated library version.
fixRun 'pip install --upgrade flask-cognito' and use 'from flask_cognito import CognitoAuth'.
jwt.exceptions.InvalidKeyError: Signature verification failed
PyJWT version mismatch or wrong public key fetched; or algorithm not RS256.
fixInstall PyJWT>=2.0, cryptography; ensure Cognito app client is configured for RS256.
Flask-Cognito requires app context
Using decorator outside of request context; or no app set up.
fixEnsure route function is within Flask app context; do not call current_cognito_jwt outside request.
KeyError: 'AWS_COGNITO_DOMAIN'
Missing configuration variables.
fixSet all required config: AWS_DEFAULT_REGION, AWS_COGNITO_DOMAIN, AWS_COGNITO_USER_POOL_ID, AWS_COGNITO_CLIENT_ID.
Upgrade
Version history
1.21latest on PyPI · released Apr 13, 2024
Audit
Dependencies
FlaskrequiredCore dependency: Flask web framework.
PyJWTrequiredJWT decoding and verification.
cryptographyrequiredRequired for RS256 signature verification.