|  | 
| 1 | 1 | """Python Flask WebApp Auth0 integration example | 
| 2 | 2 | """ | 
|  | 3 | +from functools import wraps | 
|  | 4 | +import json | 
| 3 | 5 | from os import environ as env | 
| 4 |  | -from jose import jwt | 
|  | 6 | + | 
| 5 | 7 | from dotenv import load_dotenv, find_dotenv | 
| 6 |  | -from six.moves.urllib.request import urlopen | 
| 7 | 8 | from flask import Flask | 
|  | 9 | +from flask import jsonify | 
|  | 10 | +from flask import redirect | 
| 8 | 11 | from flask import render_template | 
| 9 | 12 | from flask import request | 
| 10 | 13 | from flask import session | 
| 11 |  | -from flask import redirect | 
| 12 |  | -from flask import jsonify | 
|  | 14 | +from flask import url_for | 
| 13 | 15 | from flask_oauthlib.client import OAuth | 
| 14 |  | -from functools import wraps | 
|  | 16 | +from jose import jwt | 
| 15 | 17 | from six.moves.urllib.parse import urlencode | 
| 16 |  | -from flask import url_for | 
| 17 |  | -import json | 
|  | 18 | +from six.moves.urllib.request import urlopen | 
| 18 | 19 | 
 | 
| 19 | 20 | import constants | 
| 20 | 21 | 
 | 
|  | 
| 26 | 27 | AUTH0_CLIENT_ID = env.get(constants.AUTH0_CLIENT_ID) | 
| 27 | 28 | AUTH0_CLIENT_SECRET = env.get(constants.AUTH0_CLIENT_SECRET) | 
| 28 | 29 | AUTH0_DOMAIN = env.get(constants.AUTH0_DOMAIN) | 
| 29 |  | -AUTH0_AUDIENCE = env.get(constants.AUTH0_AUDIENCE) | 
|  | 30 | +AUTH0_AUDIENCE = env.get(constants.API_ID) | 
| 30 | 31 | 
 | 
| 31 | 32 | APP = Flask(__name__, static_url_path='/public', static_folder='./public') | 
| 32 | 33 | APP.secret_key = constants.SECRET_KEY | 
| @@ -83,13 +84,15 @@ def home(): | 
| 83 | 84 | def callback_handling(): | 
| 84 | 85 |  resp = auth0.authorized_response() | 
| 85 | 86 |  if resp is None: | 
| 86 |  | - raise AuthError({'code': request.args['error'], 'description': request.args['error_description']}, 401) | 
|  | 87 | + raise AuthError({'code': request.args['error'], | 
|  | 88 | + 'description': request.args['error_description']}, 401) | 
| 87 | 89 | 
 | 
| 88 | 90 |  # Obtain JWT and the keys to validate the signature | 
| 89 |  | - idToken = resp['id_token'] | 
|  | 91 | + id_token = resp['id_token'] | 
| 90 | 92 |  jwks = urlopen("https://"+AUTH0_DOMAIN+"/.well-known/jwks.json") | 
| 91 | 93 | 
 | 
| 92 |  | - payload = jwt.decode(idToken, jwks.read(), algorithms=['RS256'], audience=AUTH0_CLIENT_ID, issuer="https://"+AUTH0_DOMAIN+"/") | 
|  | 94 | + payload = jwt.decode(id_token, jwks.read(), algorithms=['RS256'], | 
|  | 95 | + audience=AUTH0_CLIENT_ID, issuer="https://"+AUTH0_DOMAIN+"/") | 
| 93 | 96 | 
 | 
| 94 | 97 |  session[constants.JWT_PAYLOAD] = payload | 
| 95 | 98 | 
 | 
|  | 
0 commit comments