From 0376862fdcea58a0e60822dfbf84115f3060f894 Mon Sep 17 00:00:00 2001 From: Jeffrey Linwood Date: Mon, 18 Sep 2017 17:27:53 -0500 Subject: [PATCH] Fix token generation when identity is passed via POST --- app.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/app.py b/app.py index e1c494d..0c09167 100644 --- a/app.py +++ b/app.py @@ -54,8 +54,24 @@ def config(): TWILIO_SYNC_SERVICE_SID=os.environ['TWILIO_SYNC_SERVICE_SID'], ) -@app.route('/token', methods=['POST', 'GET']) -def token(identity = None): +@app.route('/token', methods=['GET']) +def randomToken(): + return generateToken(fake.user_name()) + + +@app.route('/token', methods=['POST']) +def createToken(): + # Get the request json or form data + content = request.get_json() if request.get_json() else request.form + # get the identity from the request, or make one up + identity = content['identity'] if content['identity'] else fake.user_name() + return generateToken(identity) + +@app.route('/token/', methods=['POST', 'GET']) +def token(identity): + return generateToken(identity) + +def generateToken(identity): # get credentials for environment variables account_sid = os.environ['TWILIO_ACCOUNT_SID'] api_key = os.environ['TWILIO_API_KEY'] @@ -63,9 +79,6 @@ def token(identity = None): sync_service_sid = os.environ['TWILIO_SYNC_SERVICE_SID'] chat_service_sid = os.environ['TWILIO_CHAT_SERVICE_SID'] - # assign the provided identity or generate a new one - identity = identity or fake.user_name() - # Create access token with credentials token = AccessToken(account_sid, api_key, api_secret, identity=identity) @@ -86,6 +99,9 @@ def token(identity = None): # Return token info as JSON return jsonify(identity=identity, token=token.to_jwt().decode('utf-8')) + + + # Notify - create a device binding from a POST HTTP request @app.route('/register', methods=['POST']) def register():