Exemplo n.º 1
0
def login():
    """
    用户登录视图函数
    :return:
    """
    form = LoginForm(request.form)

    # 处理登录表单提交
    if request.method == 'POST' and form.validate():

        user = User.query.filter_by(email=form.email.data).first()

        if user and user.check_password(form.password.data):
            # remember 参数确定用户登录的 cookie 是否持久保存
            # 默认为 False,退出浏览器即删除
            # 设置为 True 时,默认保存 365 天,具体配置 http://www.pythondoc.com/flask-login/#cookie
            login_user(user, remember=True)
            # 获取要跳转的地址
            next = request.args.get('next')
            # next 不是以 '/' 开头,也返回首页(防止重定向攻击)
            if not next or not next.startswith('/'):
                next = url_for('web.index')
            return redirect(next)
        else:
            flash('账号不存在或密码错误')

    return render_template('auth/login.html', form=form)
Exemplo n.º 2
0
def login():
    form = LoginForm()
    if request.method == "POST" and form.validate():
        user = Session.query(User).filter_by(
            username=form.username.data).first()
        login_user(user)
        return redirect(url_for("main"))
    return render_template("auth/login.html", form=form)
Exemplo n.º 3
0
def register():
    form = LoginForm(request.form_with_json)
    if not form.validate():
        return jsonify(form.errors), 400
    username = form.data['username']
    password = form.data['password']
    pw_hash = generate_password_hash(password)
    print(username, pw_hash)
    return jsonify({'msg': '这个接口是用来搞笑的'})
Exemplo n.º 4
0
def login():
    form = LoginForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User.query.filter_by(email=form.email.data).first()
        if user and user.check_password(form.password.data):
            login_user(user, remember=True)
            next_url = request.args.get('next')
            if not next_url or not next_url.startswith('/'):
                next_url = url_for('web.index')
            return redirect(next_url)
        else:
            flash('密码或者用户名错误')
    return render_template('auth/login.html', form=form)
Exemplo n.º 5
0
def login():
    form = LoginForm(request.form)
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               request.form['password']):
            login_user(user)
            flash('You are logged in. Welcome!', 'success')
            return redirect(url_for('user.members'))
        else:
            flash('Invalid email and/or password.', 'danger')
            return render_template('user/login.html', form=form)
    return render_template('user/login.html', title='Please Login', form=form)
Exemplo n.º 6
0
def login():
    form = LoginForm(request.form_with_json)
    if not form.validate():
        return jsonify(form.errors), 400
    username = form.data['username']
    password = form.data['password']
    the_only_user = current_app.config['USERNAME']
    pw_hash = current_app.config['PASSWORD']
    if username == the_only_user and check_password_hash(pw_hash, password):
        session['username'] = username
        session.permanent = True
        return jsonify({'username': username})
    else:
        return jsonify({'msg': '登陆失败'}), 401
Exemplo n.º 7
0
 def post(self):
     form = LoginForm(self.request.body_arguments)
     if form.validate():
         user = self.db.query(User).filter(User.email == form.email.data).first()
         if user is None:
             form.email.errors.append('用户名不存在')
             return self.render('auth/login.html', form=form)
         if not user.check_password(form.password.data):
             form.password.errors.append('密码错误')
             return self.render('auth/login.html', form=form)
         # self.set_secure_cookie('_expires', datetime.datetime.now())
         self.set_secure_cookie('_user_id', str(user.id))
         return self.redirect(self.reverse_url('home'))
     self.render('auth/login.html', form=form)
Exemplo n.º 8
0
def login():
    form = LoginForm()
    if request.method == 'POST':
        if form.validate_on_submit():

            user, authenticated = User.authenticate(form.username.data,
                                                form.password.data)

            if user and authenticated:
                login_user(user, remember=form.remember_me.data)
                return url_for('map.devices_on_map')
            else:
                return make_response(422, message='Incorrect username or password.')

    return render_template('login.html', title='Sign In', form=form)
Exemplo n.º 9
0
def login():
    from models.user import User
    form = LoginForm()
    try:
        if form.validate_on_submit():
            user = User.objects.get(email=form.email.data)
            print user.__dict__
            if not check_password_hash(user.password_hash, form.password.data):
                raise
            login_user(user)
            flash('Welcome, %s.' % user.first_name)
            return redirect(url_for('admin'))
    except:
        form.errors['email'] = ['Bad email / password combination']

    return render_template('login.html', form=form)
Exemplo n.º 10
0
    def post(self):
        form = LoginForm(request.form)

        if form.validate():
            user = Account.login(form.email.data, form.password.data)

            if user is None:
                flash(AUTH['LOGIN_FAIL'])
                return redirect(url_for('auth.login'))

            else:
                session['logined'] = True
                session['user_id'] = user.id
                return redirect(url_for('main.home'))

        else:
            flash(AUTH['LOGIN_FAIL'])
            return redirect(url_for('auth.login'))
Exemplo n.º 11
0
def login():
    if current_user is not None and current_user.is_authenticated():
        return redirect(url_for("site.index"))

    form = LoginForm()

    error = ""
    while True:
        if request.method == "GET":
            break

        if not form.validate_on_submit():
            error = "validate error!"
            break

        password = form.password.data
        email = form.email.data
        rememberme = form.rememberme.data
        user = User.query.filter_by(email= email).first()

        if not user:
            error = "account %s : unregister."%(email)
            break

        if not user.verify_confirmed():
            error = "account %s : is unconfirmed."%(email)
            unconfirmed = True
            break

        if not user.verify_password(password):
            error = "password error."
            break

        login_user(user, rememberme)

        logger.info("user:%s email:%s login"%(user.name,user.email))

        return redirect(request.args.get('next') or url_for("site.index"))

    return render_template("auth/login.html", error=error, form=form)
Exemplo n.º 12
0
def login():
    """
    管理员登录
    """
    # if current_user is not None and current_user.is_authenticated:
    #     return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        try:
            User().login(form.login.data, form.password.data)
        except LeanCloudError, e:
            if e.code == 210:
                print u'帐号或密码错误'
            elif e.code == 211:
                print u'用户不存在'
            return u'帐号或密码错误'
        else:
            user = Query(User).equal_to("username", form.login.data).first()
            admin = Query(Admin).equal_to("user", user).first()
            login_user(admin)
            next = request.args.get('next')
            return redirect(next or "/admin/medical")
Exemplo n.º 13
0
def login():
    form = LoginForm()

    if form.validate_on_submit():
        user = User.query.filter_by(id=form.id.data.lower()).first()
        if user is not None and user.validate_password(form.password.data):
            if login_user(user):
                if user.role == 1:
                    flash(Student.query.filter_by(id=form.id.data.lower()).first().name+'同学你好', 'info')
                    return redirect(url_for('index_stu.index_stu'))
                if user.role == 2:
                    flash(Teacher.query.filter_by(id=form.id.data.lower()).first().name+'老师你好','info')
                    return redirect(url_for('index_teachers.index_teachers'))
                if user.role == 3:
                    flash('管理员你好', 'info')
                    return redirect(url_for('index_admin.index_admin'))
                return redirect_back()
            else:
                flash('您的账号被锁定了.', 'warning')
                return redirect(url_for('index_main.index'))
        flash('账号或者密码错误', 'warning')
    return render_template('index/login.html',form=form)
Exemplo n.º 14
0
    def post(self, *args, **kwargs):
        form = LoginForm(self.request.arguments)

        if form.validate():
            if AccountDB.check_email(
                    form.email.data):  # если данный емейл не зарегистрирован
                form.set_field_error('email', 'not_found')
            else:
                a = AccountDB.check_password(form.data)
                if a:
                    timezone = self.get_argument('timezone', None)
                    self.session.set('timezone', timezone)
                    logging.info(u'%s таймзона' % timezone)
                    self.set_user(a)
                    self.set_alert('success', u'Вход выполнен успешно.')
                    self.redirect('/')
                    return
                else:
                    form.set_field_error('password', 'wrong_password')

        self.context.update({'form': form})
        self.render(tmpl('login'))
Exemplo n.º 15
0
 def post(self, *args, **kwargs):
     form = LoginForm(self.request.arguments)
     
     if form.validate():
         if AccountDB.check_email(form.email.data):    # если данный емейл не зарегистрирован
             form.set_field_error('email', 'not_found')
         else:
             a = AccountDB.check_password(form.data)
             if a:
                 timezone = self.get_argument('timezone', None)
                 self.session.set('timezone', timezone)
                 logging.info(u'%s таймзона' % timezone)
                 self.set_user(a)
                 self.set_alert('success', u'Вход выполнен успешно.')
                 self.redirect('/')
                 return
             else:
                 form.set_field_error('password', 'wrong_password')                    
     
     self.context.update({'form': form})
     self.render(tmpl('login'))
Exemplo n.º 16
0
 def get(self):
     self.context.update({'title': u'Вход', 'form': LoginForm()})
     self.render(tmpl('login'))