From 8dcb80e456aa3361cf8ba5a3a6028d745b3a828f Mon Sep 17 00:00:00 2001 From: Sorrel Bri Date: Sun, 6 Oct 2019 15:39:22 -0700 Subject: [PATCH] setup login --- auth/auth.py | 32 +++++++++++++++++++++++--------- models/User.py | 5 +++-- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/auth/auth.py b/auth/auth.py index af58cc6..085ded3 100644 --- a/auth/auth.py +++ b/auth/auth.py @@ -1,5 +1,4 @@ from flask import Blueprint, request, jsonify, session - from database import db from models.User import User @@ -13,20 +12,14 @@ def auth_signup(): user = User.query.filter_by(username=data.get('username')).first() if not user: try: - print('getting here 1') - print(data) user = User( username = data['username'], email = data['email'], password = data['password'], ) - print('getting here 2') db.session.add(user) - print('wtf') db.session.commit() - print('user') auth_token = user.encode_auth_token(user.id) - print('getting here 4') response = { 'status': 'success', 'message': 'Succesfully registered.', @@ -54,5 +47,26 @@ def auth_signup(): @auth.route('/login', methods=['POST']) def auth_login(): - response = {"message": "login post"} - return jsonify(response) \ No newline at end of file + # get the post data + data = request.get_json() + try: + # fetch the user data + print('getting here') + user = User.query.filter_by(email=data['email']).first() + print(user.username) + auth_token = user.encode_auth_token(user.id) + print(auth_token) + if auth_token: + response = { + 'status': 'success', + 'message': 'Successfully logged in.', + 'auth_token': auth_token.decode() + } + return jsonify(response), 200 + except Exception as e: + print(e) + response = { + 'status': 'fail', + 'message': 'Try again' + } + return jsonify(response), 500 \ No newline at end of file diff --git a/models/User.py b/models/User.py index 3fd732d..12ca239 100644 --- a/models/User.py +++ b/models/User.py @@ -6,6 +6,7 @@ import datetime import enum import json import jwt +import os class Ranks(enum.Enum): # with minimal Elo rating D7 = "Seven Dan" # Elo 2700+ @@ -85,7 +86,7 @@ class User(db.Model): } return jwt.encode( payload, - app.config.get('SECRET_KEY'), + os.environ.get('SECRET_KEY'), algorithm='HS256' ) except Exception as e: @@ -99,7 +100,7 @@ class User(db.Model): :return: integer|string """ try: - payload = jwt.decode(auth_token, app.config.get('SECRET_KEY')) + payload = jwt.decode(auth_token, os.environ.get('SECRET_KEY')) return payload['sub'] except jwt.ExpiredSignatureError: return 'Signature expired. Please log in again.'