def login():

    form = LoginForm()

    if form.validate_on_submit():
        # user login
        user = Register.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user)
            session['is_admin'] = False
            if not user.is_confirm:
                session['email'] = False
            # next=request.args.get('next')
            # if not is_safe_url(next):
            #     return abort(400)
            return redirect(url_for('index'))

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

        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user)
            session['is_admin'] = True
            session['name'] = current_user.name
            session['image'] = current_user.profile
            # next=request.args.get('next')
            return redirect(url_for('dashboard'))

        flash('Incorrect email and password', 'danger')
        return redirect(url_for('login'))

    return render_template('login.html', form=form, categories=categories())
Ejemplo n.º 2
0
 def post(self):
     # get the post data
     post_data = request.get_json()
     try:
         # fetch the user data
         user = User.query.filter_by(
             username=post_data.get("username")).first()
         if user and bcrypt.check_password_hash(user.password,
                                                post_data.get("password")):
             auth_token = user.encode_auth_token(user.id)
             if auth_token:
                 responseObject = {
                     "status": "success",
                     "message": "Successfully logged in.",
                     "auth_token": auth_token.decode(),
                 }
                 return make_response(jsonify(responseObject)), 200
         else:
             responseObject = {
                 "status": "fail",
                 "message": "User does not exist."
             }
             return make_response(jsonify(responseObject)), 404
     except Exception as e:
         print(e)
         responseObject = {"status": "fail", "message": "Try again"}
         return make_response(jsonify(responseObject)), 500
Ejemplo n.º 3
0
 def post(self):
     # get the post data
     post_data = request.get_json()
     try:
         # fetch the user data
         user = User.query.filter_by(email=post_data.get('email')).first()
         if user and bcrypt.check_password_hash(user.password,
                                                post_data.get('password')):
             auth_token = user.encode_auth_token(user.id)
             if auth_token:
                 responseObject = {
                     'status': 'success',
                     'message': 'Successfully logged in.',
                     'auth_token': auth_token.decode()
                 }
                 return make_response(jsonify(responseObject)), 200
         else:
             responseObject = {
                 'status': 'fail',
                 'message': 'User does not exist.'
             }
             return make_response(jsonify(responseObject)), 404
     except Exception as e:
         print(e)
         responseObject = {'status': 'fail', 'message': 'Try again'}
         return make_response(jsonify(responseObject)), 500
Ejemplo n.º 4
0
    def is_correct_password(self, plaintext_password):
        """Check password hash.

        Check if the hash for the plaintext password matches the user hashed
        password.
        """
        return bcrypt.check_password_hash(self.user_password,
                                          plaintext_password)
Ejemplo n.º 5
0
def login_user():
    post_data = request.get_json()
    response = {"status": "fail", "message": "Invalid Payload"}

    if not post_data:
        return jsonify(response), 400

    username_or_email = post_data.get("user_identification")

    if username_or_email is None:
        response["message"] = "Username or Email isn't found"
        return jsonify(response), 400

    password = post_data.get("password")

    if password is None:
        response["message"] = "Password isn't found"
        return jsonify(response), 400

    try:
        user_from_username = User.query.filter_by(
            username=username_or_email).first()
        user_from_email = User.query.filter_by(email=username_or_email).first()

        user = None

        if user_from_username is not None:
            user = user_from_username
        elif user_from_email is not None:
            user = user_from_email

        if user is None:
            response[
                "message"] = "Username or Email with Password doesn't not matched"
            return jsonify(response), 404

        if bcrypt.check_password_hash(user.password, password):
            token = user.encode_auth_token()
            if token:
                response["status"] = "success"
                response["message"] = "Successfully Log in"
                response["token"] = token.decode()
                user.isActive = True
                db.session.commit()
                return jsonify(response), 200
        else:
            response[
                "message"] = "Username or Email with Password doesn't not matched"
            return jsonify(response), 404
    except Exception as e:
        response["status"] = "fail"
        response["message"] = "Internal Error"

        if "token" in response:
            del response["token"]

        return jsonify(response), 500
Ejemplo n.º 6
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password, form.password.data):
            login_user(user, remember=form.remember.data)
            return redirect(url_for('home'))
    return render_template('login.html', title='Login', form=form)
Ejemplo n.º 7
0
def log_in():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data.lower()).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, remember=form.remember.data)
            next = request.args.get('next')
            return redirect(url_for("home"))
    return render_template("log_in.html", form=form, title="Log in")
Ejemplo n.º 8
0
Archivo: user.py Proyecto: trustmub/OBS
    def verify_password(self):
        """
        Method to verify password
        :return:

            True if self.password correct and None/False if self.password is wrong
        """
        user = session.query(User).filter_by(email=self.email).first()
        if bcrypt.check_password_hash(user.password, self.password):
            return True
Ejemplo n.º 9
0
def login_user_svc(**kwargs):
	"""
	User authentication service.
	Checks the given password against the stored hash.
	:param kwargs:
	:return: user query object
	"""
	user = get_user_by_email(kwargs["email"])
	if not user or not bcrypt.check_password_hash(user.password, kwargs["password"]):
		return None
	return user
Ejemplo n.º 10
0
    def verify_pin(self):
        """
        Method to verify pin
        :return:

            True if self.pin correct and None/False if self.pin is wrong
        """
        user = session.query(ApiUser).filter_by(
            account_number=self.account).first()

        if user and bcrypt.check_password_hash(user.pin, str(self.pin)):
            return True
Ejemplo n.º 11
0
def login():
  if current_user.is_authenticated:
    return redirect(url_for('home'))
  form = LoginForm()
  if form.validate_on_submit():
    user = User.query.filter_by(email=form.email.data).first()
    if user and bcrypt.check_password_hash(user.password, form.password.data):
      login_user(user, remember=form.remember.data)
      next_page = request.args.get('next')
      return redirect(next_page) if next_page else redirect(url_for('home'))
    else:
      flash('Login Unsuccessful. Please check email and password.','danger')
  return render_template('login.html', title='Login', form=form)
Ejemplo n.º 12
0
def test_update_user_with_passord(test_app, test_database, add_user):
    password_one = "greaterthaneight"
    password_two = "somethingdifferent"

    user = add_user("user-to-be-updated", "*****@*****.**", password_one)
    assert bcrypt.check_password_hash(user.password, password_one)

    client = test_app.test_client()
    resp = client.put(
        f"/users/{user.id}",
        data=json.dumps({
            "username": "******",
            "email": "*****@*****.**",
            "password": password_two
        }),
        content_type="application/json",
    )
    assert resp.status_code == 200

    user = get_user_by_id(user.id)
    assert bcrypt.check_password_hash(user.password, password_one)
    assert not bcrypt.check_password_hash(user.password, password_two)
Ejemplo n.º 13
0
def api_data_validator(request):
    auth = request.authorization

    if not auth or not auth.username or not auth.password:
        return 'Login fail please pass the correct credentials.'
    user = User.query.filter_by(username=auth.username).first()
    try:
        user.password
    except:
        return 'User not Found.'
    if bcrypt.check_password_hash(user.password, auth.password) and user:
        return "Auth Verified.", user.role
    else:
        return "Invalid credentials."
Ejemplo n.º 14
0
def auth_login():
    user_fields = user_schema.load(request.json)

    user = User.query.filter_by(email=user_fields["email"]).first()

    if not user or not bcrypt.check_password_hash(user.password,
                                                  user_fields["password"]):
        return abort(401, description="Incorrect username or password")

    expiry = timedelta(days=1)
    access_token = create_access_token(identity=str(user.id),
                                       expires_delta=expiry)

    return jsonify({"token": access_token})
Ejemplo n.º 15
0
    def post(self):
        try:
            json_data = UserLoginSchema().load(request.json)
        except ValidationError as err:
            return err.messages, 422
        user = User.query.filter_by(email=json_data['email']).first()
        if user and bcrypt.check_password_hash(user.password,
                                               json_data['password']):
            token = AuthService.login(user)
        else:
            return {'error': 'Email or password invalid'}, 401

        return {
            "msg": f"Logged in as {json_data['email']}, {token['token']}."
        }, 200
Ejemplo n.º 16
0
    def post(self):
        post_data = request.get_json()
        email = post_data.get("email")
        password = post_data.get("password")
        response_object = {}

        user = get_user_by_email(email)
        if not user or not bcrypt.check_password_hash(user.password, password):
            auth_namespace.abort(404, "User does not exist")

        access_token = user.encode_token(user.id, "access")
        refresh_token = user.encode_token(user.id, "refresh")

        response_object = {"access_token": access_token, "refresh_token": refresh_token}
        return response_object, 200
Ejemplo n.º 17
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.hello'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password, form.password.data):
            login_user(user, remember=form.remember.data) 
            next_page = request.args.get('next')
            
            flash(f'Вы в системе.', 'success')
            return redirect(next_page) if next_page else redirect(url_for('main.hello'))
        else:
            flash(f'Не смогли войти. Проверьте логин или пароль.', 'danger')
    context = {'title': 'Вход'}
    return render_template('login.html', context=context, form=form)
Ejemplo n.º 18
0
def login():
    if current_user.is_authenticated:
        return (redirect(url_for('main.home')))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, remember=form.remember_me.data)
            next_page = request.args.get('next')
            flash('Successfully logged in', 'success')
            return redirect(next_page) if next_page else redirect(
                url_for('main.home'))
        else:
            flash('Incorrect username or password', 'danger')
    return render_template('users/login.html', title='Login', form=form)
Ejemplo n.º 19
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, form.remember_me.data)
            next_page = request.args.get('next')
            flash(f'Logged in as {user.username}', 'success')
            return redirect(next_page) if next_page else redirect(
                url_for('main.index'))
        else:
            flash('Invalid Email Id or password', 'danger')
    return render_template('login.html', form=form, title='Login')
Ejemplo n.º 20
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, remember=form.remember.data)
            next_page = request.args.get('next')[1:] if request.args.get(
                'next') else 'home'
            return redirect(url_for(next_page))
        else:
            flash("Login Unsuccessfull, Please check Username or Password",
                  "danger")
    return render_template("login.html", title="Flask | LOGIN", form=form)
Ejemplo n.º 21
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('home'))

    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user)
            next_page = request.args.get('next')

            return redirect(next_page) if next_page else redirect(
                url_for('home'))
        else:
            flash('Email or password are not valid!', 'unsuccess_field')

    return render_template('login.html', title='Login', form=form)
Ejemplo n.º 22
0
def iniciar_sesion():
    form = InicioSesionForm()
    if form.validate_on_submit():
        user = tabla_usuarios.find_one({'usuario': form.username.data})
        if user and bcrypt.check_password_hash(user['password'], form.password.data):
            # login_user(user, remember=login.remember.data)
            flash('Inicio de sesion completado satisfactoriamente', 'success')
            session['user'] = user['usuario']
            session['email'] = user['email']
            if user['image'] != None:
                session['image'] = user['image']
            else:
                session['image'] = 'default.jpg'
            next_page = request.args.get('next')
            return redirect(next_page) if next_page else redirect(url_for('index'))
        else:
            flash('No se pudo iniciar sesion, porfavor revise el usuario y contraseña', 'danger')
    return render_template('inicio_sesion.html', titulo = 'Inicio De Sesion', form = form)
Ejemplo n.º 23
0
def login(username, password):
    if username is not None and password is not None:
        existing_user = User.query\
            .filter_by(username=username)\
            .first()

        valid_user = existing_user is not None and bcrypt.check_password_hash(
            existing_user.password, password)

        if valid_user:
            existing_user.authenticated = True
            db.session.add(existing_user)
            db.session.commit()
            login_user(existing_user)
            return make_response('User successfully logged in', 200)
        else:
            return make_response('Invalid username/password supplied', 400)
    else:
        return make_response('Invalid username/password supplied', 400)
    def get(self):
        args = login_parser.parse_args()
        print(args)

        username = args.get('username')
        password = args.get('password')
        pwd_hash = bcrypt.generate_password_hash(password)

        users = session.query(User).filter(User.username == username).all()

        if len(users) > 0:
            user = users[0]
            correct = bcrypt.check_password_hash(user.password, password)

            if correct:
                return {'response': 'success'}
            else:
                return {'response': 'bad password'}

        return {'response': 'no user found'}
Ejemplo n.º 25
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))

    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()

        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, remember=form.remember.data)
            next_page = request.args.get('next')
            return redirect(next_page) if next_page else redirect(
                url_for('main.home'))
        else:
            flash(
                'Login failed. Verify that you have entered your credentials correctly.',
                'danger')

    return render_template('users/login.html', title='Login', form=form)
Ejemplo n.º 26
0
def login():
    if 'user' in session:
        return redirect(url_for('resultados'))
    login = LogIn_Form()
    if login.validate_on_submit():
        user = tabla_usuarios.find_one({'usuario': login.username.data})
        if user and bcrypt.check_password_hash(user['password'],
                                               login.password.data):
            # login_user(user, remember=login.remember.data)
            flash('Inicio de sesión completado satisfactoriamente', 'success')
            session['user'] = user['usuario']
            session['email'] = user['email']
            next_page = request.args.get('next')
            print(next_page)
            return redirect(next_page) if next_page else redirect(
                url_for('resultados'))
        else:
            flash(
                'No se pudo iniciar sesión, por favor revise el usuario y contraseña',
                'danger')
    return render_template('inicio_sesion.html',
                           title='Inicio Sesion',
                           form=login)
Ejemplo n.º 27
0
 def check_password_correction(self, attempted_password):
     return bcrypt.check_password_hash(self.password, attempted_password)
Ejemplo n.º 28
0
 def check_password(self, password):
     return bcrypt.check_password_hash(self.password, password)
Ejemplo n.º 29
0
 def login(form):
     user = model.User.query.filter_by(username=form.username.data).first()
     if user and bcrypt.check_password_hash(user.password, form.password.data):
         login_user(user)
Ejemplo n.º 30
0
 def check_password(self, password):
     return bcrypt.check_password_hash(self.hashed_pw, password)