Update: Remove 1 error message

This commit is contained in:
Yûki VACHOT 2022-01-05 09:21:42 +01:00
parent 419e3c1aa9
commit 6ca1f6b13c
4 changed files with 12 additions and 43 deletions

View file

@ -7,38 +7,31 @@ from .logs_model import Logs
def hash_password(salt, password): def hash_password(salt, password):
return hashlib.pbkdf2_hmac('sha256', password.encode('utf-8'), salt, 100000) return hashlib.pbkdf2_hmac('sha256', password.encode('utf-8'), salt, 100000)
def db_login(ip, email, password): def db_login(ip, email, password):
user = Users.query.filter( user = Users.query.filter(
Users.email == email Users.email == email
).first() ).first()
if not user:
message = f'Email or password invalid' # Check User and Hash Pass
if user and user.hash_pass == hash_password(user.salt, password):
message = 'User authenticated.'
log = Logs( log = Logs(
date=datetime.now().strftime('%Y-%m-%dT%H:%M:%S'), date=datetime.now().strftime('%Y-%m-%dT%H:%M:%S'),
id_user=None, id_user=user.id,
ip=ip, ip=ip,
table='users', table='users',
action='login', action='login',
message=message, message=message,
has_succeeded=False, has_succeeded=True,
status_code=1 status_code=0
) )
db.session.add(log) db.session.add(log)
db.session.commit() db.session.commit()
return {'status': 1, 'message': message} # User does not exist return {'status': 0, 'message': message, 'data': user.json()}
else:
# Check Hash Pass
salt = user.get_salt()
hash_pass = hash_password(salt, password)
user = Users.query\
.filter(Users.email == email, Users.hash_pass == hash_pass)\
.first()
if not user:
message = f'Email or password invalid' message = f'Email or password invalid'
log = Logs( log = Logs(
date=datetime.now().strftime('%Y-%m-%dT%H:%M:%S'), date=datetime.now().strftime('%Y-%m-%dT%H:%M:%S'),
@ -52,22 +45,7 @@ def db_login(ip, email, password):
) )
db.session.add(log) db.session.add(log)
db.session.commit() db.session.commit()
return {'status': 2, 'message': message} # Email or password invalid return {'status': 1, 'message': message} # Email or password invalid
else:
message = 'User authenticated.'
log = Logs(
date=datetime.now().strftime('%Y-%m-%dT%H:%M:%S'),
id_user=user.get_id(),
ip=ip,
table='users',
action='login',
message=message,
has_succeeded=True,
status_code=0
)
db.session.add(log)
db.session.commit()
return {'status': 0, 'message': message, 'data': user.json()}
def db_register(ip, email, password, is_admin): def db_register(ip, email, password, is_admin):
@ -92,7 +70,6 @@ def db_register(ip, email, password, is_admin):
# Salt Hash Pass with SHA256 # Salt Hash Pass with SHA256
salt = os.urandom(32) salt = os.urandom(32)
print('salt: ', salt)
hash_pass = hash_password(salt, password) hash_pass = hash_password(salt, password)
user = Users( user = Users(

View file

@ -17,8 +17,6 @@ def login():
if res['status'] == 0: if res['status'] == 0:
return send_message(res['message'], res['data']) return send_message(res['message'], res['data'])
elif res['status'] == 1: elif res['status'] == 1:
return send_error(500, res['message'])
elif res['status'] == 2:
return send_error(404, res['message']) return send_error(404, res['message'])
else: else:
return send_error(400, 'POST Request Error : Need email, password fields.') return send_error(400, 'POST Request Error : Need email, password fields.')

View file

@ -36,12 +36,6 @@ class Users(db.Model):
'is_admin': self.is_admin 'is_admin': self.is_admin
} }
def get_id(self):
return self.id
def get_salt(self):
return self.salt
def auth_token(self): def auth_token(self):
try: try:
time = datetime.now().strftime('%Y-%m-%dT%H:%M:%S') time = datetime.now().strftime('%Y-%m-%dT%H:%M:%S')

View file

@ -8,7 +8,7 @@ class Config(object):
TESTING = False TESTING = False
CSRF_ENABLED = True CSRF_ENABLED = True
SECRET_KEY = os.environ.get('SECRET_KEY', None) SECRET_KEY = os.environ.get('SECRET_KEY', 'default_secret_key')
FLASK_APP = os.environ.get('FLASK_APP', None) FLASK_APP = os.environ.get('FLASK_APP', None)
FLASK_ENV = os.environ.get('FLASK_ENV', None) FLASK_ENV = os.environ.get('FLASK_ENV', None)