Skip to content

Commit 62e5e5e

Browse files
Annybell VillarroelAnnybell Villarroel
authored andcommitted
Update sample
1 parent 802e0c0 commit 62e5e5e

4 files changed

Lines changed: 63 additions & 45 deletions

File tree

00-Starter-Seed/constants.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
""" Constants file for Auth0's seed project
2+
"""
3+
ACCESS_TOKEN_KEY = 'access_token'
4+
APP_JSON_KEY = 'application/json'
5+
AUTH0_CLIENT_ID = 'AUTH0_CLIENT_ID'
6+
AUTH0_CLIENT_SECRET = 'AUTH0_CLIENT_SECRET'
7+
AUTH0_CALLBACK_URL = 'AUTH0_CALLBACK_URL'
8+
AUTH0_DOMAIN = 'AUTH0_DOMAIN'
9+
AUTHORIZATION_CODE_KEY = 'authorization_code'
10+
CLIENT_ID_KEY = 'client_id'
11+
CLIENT_SECRET_KEY = 'client_secret'
12+
CODE_KEY = 'code'
13+
CONTENT_TYPE_KEY = 'content-type'
14+
GRANT_TYPE_KEY = 'grant_type'
15+
PROFILE_KEY = 'profile'
16+
REDIRECT_URI_KEY = 'redirect_uri'
17+
SECRET_KEY = 'ThisIsTheSecretKey'

00-Starter-Seed/constants.pyc

615 Bytes
Binary file not shown.

00-Starter-Seed/server.py

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,75 @@
1-
import os
1+
"""Auth0's sample server
2+
"""
3+
from functools import wraps
24
import json
5+
import os
36

4-
import requests
5-
from functools import wraps
6-
from flask import Flask, request, jsonify, session, redirect, render_template, send_from_directory
77
from dotenv import Dotenv
8+
from flask import Flask
9+
from flask import redirect
10+
from flask import render_template
11+
from flask import request
12+
from flask import send_from_directory
13+
from flask import session
14+
import requests
15+
16+
import constants
817

918
# Load Env variables
1019
env = None
1120

1221
try:
13-
env = Dotenv('./.env')
22+
env = Dotenv('./.env')
1423
except IOError:
15-
env = os.environ
24+
env = os.environ
1625

17-
app = Flask(__name__, static_url_path= '')
18-
app.secret_key = '@mgonto'
26+
app = Flask(__name__, static_url_path='')
27+
app.secret_key = constants.SECRET_KEY
1928
app.debug = True
2029

2130
# Requires authentication annotation
22-
2331
def requires_auth(f):
24-
@wraps(f)
25-
def decorated(*args, **kwargs):
26-
if 'profile' not in session:
27-
return redirect('/')
28-
return f(*args, **kwargs)
29-
30-
return decorated
31-
32+
@wraps(f)
33+
def decorated(*args, **kwargs):
34+
if constants.PROFILE_KEY not in session:
35+
return redirect('/')
36+
return f(*args, **kwargs)
37+
return decorated
3238

3339
# Controllers API
34-
@app.route("/")
40+
@app.route('/')
3541
def home():
3642
return render_template('home.html', env=env)
3743

38-
@app.route("/dashboard")
44+
@app.route('/dashboard')
3945
@requires_auth
4046
def dashboard():
41-
return render_template('dashboard.html', user=session['profile'])
47+
return render_template('dashboard.html', user=session[constants.PROFILE_KEY])
4248

4349
@app.route('/public/<path:filename>')
4450
def static_files(filename):
4551
return send_from_directory('./public', filename)
4652

4753
@app.route('/callback')
4854
def callback_handling():
49-
code = request.args.get('code')
50-
51-
json_header = {'content-type': 'application/json'}
52-
53-
token_url = "https://{domain}/oauth/token".format(domain=env["AUTH0_DOMAIN"])
54-
token_payload = {
55-
'client_id' : env['AUTH0_CLIENT_ID'], \
56-
'client_secret' : env['AUTH0_CLIENT_SECRET'], \
57-
'redirect_uri' : env['AUTH0_CALLBACK_URL'], \
58-
'code' : code, \
59-
'grant_type': 'authorization_code' \
60-
}
61-
62-
token_info = requests.post(token_url, data=json.dumps(token_payload), headers = json_header).json()
63-
64-
user_url = "https://{domain}/userinfo?access_token={access_token}" \
65-
.format(domain=env["AUTH0_DOMAIN"], access_token=token_info['access_token'])
66-
67-
user_info = requests.get(user_url).json()
68-
69-
session['profile'] = user_info
70-
71-
return redirect('/dashboard')
55+
code = request.args.get(constants.CODE_KEY)
56+
json_header = {constants.CONTENT_TYPE_KEY: constants.APP_JSON_KEY}
57+
token_url = 'https://{domain}/oauth/token'.format(domain=env[constants.AUTH0_DOMAIN])
58+
token_payload = {
59+
constants.CLIENT_ID_KEY : env[constants.AUTH0_CLIENT_ID],
60+
constants.CLIENT_SECRET_KEY : env[constants.AUTH0_CLIENT_SECRET],
61+
constants.REDIRECT_URI_KEY : env[constants.AUTH0_CALLBACK_URL],
62+
constants.CODE_KEY : code,
63+
constants.GRANT_TYPE_KEY : constants.AUTHORIZATION_CODE_KEY
64+
}
65+
66+
token_info = requests.post(token_url, data=json.dumps(token_payload),
67+
headers=json_header).json()
68+
user_url = 'https://{domain}/userinfo?access_token={access_token}'.format(
69+
domain=env[constants.AUTH0_DOMAIN], access_token=token_info[constants.ACCESS_TOKEN_KEY])
70+
user_info = requests.get(user_url).json()
71+
session[constants.PROFILE_KEY] = user_info
72+
return redirect('/dashboard')
7273

7374
if __name__ == "__main__":
74-
app.run(host='0.0.0.0', port = int(os.environ.get('PORT', 3000)))
75+
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 3000)))

00-Starter-Seed/templates/home.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<html>
22
<head>
33
<script src="http://code.jquery.com/jquery-3.1.0.min.js" type="text/javascript"></script>
4-
<script src="https://cdn.auth0.com/js/lock/10.4/lock.min.js"></script>
4+
<script src="https://cdn.auth0.com/js/lock/10.5/lock.min.js"></script>
55

66
<script type="text/javascript" src="//use.typekit.net/iws6ohy.js"></script>
77
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>

0 commit comments

Comments
 (0)