feat(auth): add data validation
This commit is contained in:
+18
-9
@@ -1,19 +1,28 @@
|
|||||||
from flask import Blueprint, request, jsonify
|
from flask import Blueprint, request, jsonify
|
||||||
from model.user import User
|
from model.user import User
|
||||||
from utils.createLogger import createLogger
|
|
||||||
|
|
||||||
loginBP = Blueprint("loginapi", __name__)
|
loginBP = Blueprint("loginapi", __name__)
|
||||||
log = createLogger("LoginAPI")
|
|
||||||
@loginBP.route('/api/login', methods = ['POST'])
|
|
||||||
|
@loginBP.route('/api/auth/login', methods = ['POST'])
|
||||||
def login():
|
def login():
|
||||||
if request.is_json:
|
if request.is_json:
|
||||||
req = request.json
|
req = request.json
|
||||||
email = req['email']
|
|
||||||
password = req['password']
|
email = req.get('email')
|
||||||
#if(isvalid(email, password)):
|
password = req.get('password')
|
||||||
|
|
||||||
|
if not email or not password:
|
||||||
|
return "Request must have email and password", 400
|
||||||
|
|
||||||
|
if len(email.strip()) < 4 or '@' not in email or '.' not in email:
|
||||||
|
return "Email is incorrect", 400
|
||||||
|
|
||||||
|
if len(password.strip()) < 8:
|
||||||
|
return "Password is too short", 400
|
||||||
|
|
||||||
user = User(email, password)
|
user = User(email, password)
|
||||||
log.debug("Respons is sended")
|
|
||||||
return jsonify(user.toDictionary())
|
return jsonify(user.toDictionary())
|
||||||
|
|
||||||
else:
|
else:
|
||||||
log.error("Request is not a JSON")
|
return "Request is not a json", 400
|
||||||
return "Request is not a json", 500
|
|
||||||
|
|||||||
Reference in New Issue
Block a user