hash.update(request.json["password"].encode()) password = hash.hexdigest() session = Session() try: # get user matching login infos user = (session.query(User).filter(User.email == email, User.password == password).one()) # create access token from user infos user_data = user.get_small_data() access_token = create_access_token(identity=user_data) user_data["access_token"] = access_token except NoResultFound: session.rollback() return ( jsonify( {"error": "Unknown email / Email and password not matching"}), 403, ) except Exception as e: print(e) session.rollback() return jsonify({"error": "An unexpected error occured"}), 500 finally: session.close() return jsonify(**user_data), 200 app.register_blueprint(auth_bp, url_prefix="/auth")
from flask import Blueprint from flask_restful import Api from heqtor.core import db, Session from heqtor.web import app from .me import Me, MeCompany, MeCompanyUsers, MeCompanyUser from .companies import Companies from .users import Users api_bp = Blueprint("api", __name__) api = Api(api_bp) api.add_resource(Me, "/me") api.add_resource(MeCompany, "/me/company") api.add_resource(Users, "/users") api.add_resource(Companies, "/companies") api.add_resource(MeCompanyUsers, "/me/company/users") api.add_resource(MeCompanyUser, "/me/company/users/<int:user_id>") app.register_blueprint(api_bp, url_prefix="/api")