def login() -> render_template: login_form = AuthForm() context = {'login_form': login_form} if login_form.validate_on_submit(): username = login_form.username.data password = login_form.password.data user_doc = get_user(username) if user_doc.to_dict(): password_from_db = user_doc.to_dict()['password'] if password == password_from_db: user_data = UserData(username, password) user = UserModel(user_data) login_user(user) flash('Bienvenido de nuevo!') redirect(url_for('hello')) else: flash("la información no coincide") else: flash("El usuario no existe") return redirect(url_for('index')) return render_template('login.html', **context)
def login(): if current_user.is_authenticated: return redirect(url_for('account')) form = AuthForm() if form.validate_on_submit(): print("all ok") user = User.query.filter_by(mail=form.mail.data).first() if user and user.check_hash(form.password.data): login_user(user) next_page = request.args.get('next') if not next_page: next_page = url_for('account') return redirect(next_page) return render_template('auth.html', form=form)
def signup() -> render_template: signup_form = AuthForm() context = {'signup_form': signup_form} if signup_form.validate_on_submit(): username = signup_form.username.data password = signup_form.password.data user_doc = get_user(username) if user_doc.to_dict() is None: password_hash = generate_password_hash(password) user_data = UserData(username=username, password=password_hash) put_user(user_data) user = UserModel(user_data) login_user(user) flash("Bienvenido") return redirect(url_for('hello')) else: flash("El usuario ya existe!") return render_template('signup.html', **context)
def __login(self): """Метод обработки запросов пользователя на странице авторизации""" if current_user.is_authenticated: return redirect(url_for("__index")) form = AuthForm() # Если пришел POST запрос в форме, обрабатываем его. if form.validate_on_submit(): # Загружаем юзера со всеми его данными. user = self.__db_connector.load_user(form.name.data) # Если юзер вошел, перенаправляем на главную. if user and user.verify_password(form.password.data): login_user(user, remember=form.remember_me.data) return redirect(request.args.get("next") or url_for("__index")) else: flash("Упс, похоже, вы ошиблись с данными.", "error") # Если юзер не смог войти или просто открыл страницу авторизации, # отправляем шаблон с формой. return render_template("authorization.html", form=form)