Skip to content

Instantly share code, notes, and snippets.

@an01f01
Last active July 13, 2022 20:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save an01f01/cc86a324dd9f5b1c27efcd5cd61da2fc to your computer and use it in GitHub Desktop.
Save an01f01/cc86a324dd9f5b1c27efcd5cd61da2fc to your computer and use it in GitHub Desktop.
class LoginHandler(BaseHandler):
def initialize(self):
database_url = os.environ['BOOKS_DB_CONN']
self.session = queries.TornadoSession(uri=database_url)
"""
POST handler for user loggin
"""
@gen.coroutine
def post(self):
data_json = json.loads(self.request.body)
try:
username = data_json.get("username")
password = data_json.get("password")
sql = "SELECT username, pwd FROM users WHERE username = %(user)s;"
results = yield self.session.query(sql, {'user': username})
data_ret = results.as_dict()
results.free()
if pbkdf2_sha256.verify(password, data_ret['pwd']):
auth_token = encode_auth_token(username)
self.set_status(200)
self.write({'status': 'success', 'message': 'Logged in successfully', 'auth_token': auth_token })
self.finish()
return
else:
self.set_status(500)
self.write({'status': 'fail', 'message': 'Invalid loggin attempt' })
self.finish()
return
except:
self.set_status(500)
self.write({'status': 'fail', 'message': 'Invalid loggin attempt' })
self.finish()
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment