Merge pull request #26 from TwilioDevEd/fix-token-generation

Fix token generation when identity is passed via POST
This commit is contained in:
Jeff Linwood
2017-09-18 19:00:33 -04:00
committed by GitHub

26
app.py
View File

@@ -54,8 +54,24 @@ def config():
TWILIO_SYNC_SERVICE_SID=os.environ['TWILIO_SYNC_SERVICE_SID'], TWILIO_SYNC_SERVICE_SID=os.environ['TWILIO_SYNC_SERVICE_SID'],
) )
@app.route('/token', methods=['POST', 'GET']) @app.route('/token', methods=['GET'])
def token(identity = None): 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() or request.form
# get the identity from the request, or make one up
identity = content.get('identity', fake.user_name())
return generateToken(identity)
@app.route('/token/<identity>', methods=['POST', 'GET'])
def token(identity):
return generateToken(identity)
def generateToken(identity):
# get credentials for environment variables # get credentials for environment variables
account_sid = os.environ['TWILIO_ACCOUNT_SID'] account_sid = os.environ['TWILIO_ACCOUNT_SID']
api_key = os.environ['TWILIO_API_KEY'] api_key = os.environ['TWILIO_API_KEY']
@@ -63,9 +79,6 @@ def token(identity = None):
sync_service_sid = os.environ['TWILIO_SYNC_SERVICE_SID'] sync_service_sid = os.environ['TWILIO_SYNC_SERVICE_SID']
chat_service_sid = os.environ['TWILIO_CHAT_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 # Create access token with credentials
token = AccessToken(account_sid, api_key, api_secret, identity=identity) token = AccessToken(account_sid, api_key, api_secret, identity=identity)
@@ -86,6 +99,9 @@ def token(identity = None):
# Return token info as JSON # Return token info as JSON
return jsonify(identity=identity, token=token.to_jwt().decode('utf-8')) return jsonify(identity=identity, token=token.to_jwt().decode('utf-8'))
# Notify - create a device binding from a POST HTTP request # Notify - create a device binding from a POST HTTP request
@app.route('/register', methods=['POST']) @app.route('/register', methods=['POST'])
def register(): def register():