from . import m_auth from flask import render_template from flask import redirect from flask import request from flask import session from app._tools.database import SessionManager from app._tools.database import DataManager from app._tools.decorators import auth_required from app._tools import passhash from app.config import _SALT as SALT @m_auth.route('/') def login_page(): return render_template('auth/login_form.html') @m_auth.route('/session/login', methods=['POST']) def login(): data = dict(request.form) if (len(data['username']) == 0 or len(data['password']) == 0): return redirect("/auth") user_i = DataManager.get_user_by_name(data['username']) if user_i == None: return render_template("error.html", error = "Пользователь не найден!") if not passhash.isValid(data['password'], SALT, user_i.passkey): return render_template("error.html", error = "Неверный пароль!") new_token = passhash.genToken() SessionManager.add_session(new_token, user_i.id) session.permanent = True session["token"] = new_token return redirect("/") @m_auth.route('/logout') @auth_required def logout(): current_token = session["token"] session.clear() SessionManager.remove_session(current_token) return redirect("/")