Guest User

Untitled

a guest
Mar 9th, 2019
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. from flask import Flask
  2. from flask_jwt import JWT, jwt_required, current_identity
  3. from werkzeug.security import safe_str_cmp
  4.  
  5.  
  6. class User(object):
  7. def __init__(self, id, username, password):
  8. self.id = id
  9. self.username = username
  10. self.password = password
  11.  
  12. def __str__(self):
  13. return "User(id='%s')" % self.id
  14.  
  15.  
  16. users = [
  17. User(1, 'joe', 'pass'),
  18. User(2, 'user2', 'abcxyz'),
  19. ]
  20.  
  21. username_table = {u.username: u for u in users}
  22. userid_table = {u.id: u for u in users}
  23.  
  24.  
  25. def authenticate(username, password):
  26. user = username_table.get(username, None)
  27. if user and safe_str_cmp(user.password.encode('utf-8'), password.encode('utf-8')):
  28. return user
  29.  
  30.  
  31. def identity(payload):
  32. user_id = payload['identity']
  33. return userid_table.get(user_id, None)
  34.  
  35.  
  36. app = Flask(__name__)
  37. app.debug = True
  38. app.config['SECRET_KEY'] = 'super-secret'
  39.  
  40. jwt = JWT(app, authenticate, identity)
  41.  
  42.  
  43. @app.route('/protected')
  44. @jwt_required()
  45. def protected():
  46. return '%s' % current_identity
  47.  
  48.  
  49. if __name__ == '__main__':
  50. app.run()
Add Comment
Please, Sign In to add comment