コード例 #1
0
def session_login() -> str:
    """ POST /api/v1/auth_session/login
    JSON body:
      - email
      - password
    Return:
      - User object JSON represented
    """

    user_email = request.form.get('email')
    user_pswd = request.form.get('password')

    if user_email is None:
        return jsonify({"error": "email missing"}), 400
    if user_pswd is None:
        return jsonify({"error": "password missing"}), 400

    try:
        search_users = User.search({'email': user_email})
    except Exception:
        return jsonify({"error": "no user found for this email"}), 404
    if not search_users:
        return jsonify({"error": "no user found for this email"}), 404

    for user in search_users:
        if user.is_valid_password(user_pswd):
            from api.v1.app import auth
            session_cookie = getenv("SESSION_NAME")
            session_id = auth.create_session(user.id)
            response = jsonify(user.to_json())
            response.set_cookie(session_cookie, session_id)
            return response
        else:
            return jsonify({"error": "wrong password"}), 401
コード例 #2
0
def login():
    """ POST /auth_session/login
    Return
        - Logged in user
    """
    email = request.form.get('email')
    if not email:
        return jsonify({"error": "email missing"}), 400
    password = request.form.get('password')
    if not password:
        return jsonify({"error": "password missing"}), 400
    try:
        found_users = User.search({'email': email})
    except Exception:
        return jsonify({"error": "no user found for this email"}), 404

    if not found_users:
        return jsonify({"error": "no user found for this email"}), 404

    for user in found_users:
        if not user.is_valid_password(password):
            return jsonify({"error": "wrong password"}), 401

    from api.v1.app import auth

    user = found_users[0]
    session_id = auth.create_session(user.id)
    SESSION_NAME = getenv("SESSION_NAME")
    response = jsonify(user.to_json())
    response.set_cookie(SESSION_NAME, session_id)
    return response
コード例 #3
0
def auth_sess_login():
    """ POST /api/v1/auth_session/login
    Return:
      - dict repr of User
    """
    u_email = request.form.get('email')
    u_pwd = request.form.get('password')

    if u_email is None or u_email == "":
        return jsonify({"error": "email missing"}), 400
    if u_pwd is None or u_pwd == "":
        return jsonify({'error': 'password missing'}), 400

    emailSearch = User.search({'email': u_email})

    if emailSearch == []:
        return jsonify({"error": "no user found for this email"}), 404

    for user in emailSearch:
        if user.email == u_email and not user.is_valid_password(u_pwd):
            return jsonify({"error": "wrong password"}), 401
    else:
        from api.v1.app import auth
        get_sess_name = os.getenv('SESSION_NAME')
        make_sess_id = auth.create_session(user.id)
        response = jsonify(user.to_json())
        response.set_cookie(get_sess_name, make_sess_id)
        return response
コード例 #4
0
def session_login() -> str:
    """ handles all routes for the Session authentication """
    email = request.form.get('email')
    if not email:
        return jsonify({"error": "email missing"}), 400
    password = request.form.get('password')
    if not password:
        return jsonify({"error": "password missing"}), 400

    try:
        user = User.search({'email': email})
    except Exception:
        user = None

    if user:
        validate_password = user[0].is_valid_password(password)
        if not validate_password:
            return jsonify({"error": "wrong password"}), 401
        from api.v1.app import auth
        session_id = auth.create_session(user[0].id)
        user_dict = jsonify(user[0].to_json())
        cookie = os.getenv('SESSION_NAME')
        user_dict.set_cookie(cookie, session_id)
        return user_dict
    else:
        return jsonify({"error": "no user found for this email"}), 404
コード例 #5
0
def login():
    """ POST /auth_session/login
    Return:
     - User instance based on email
    """
    email = request.form.get('email')
    password = request.form.get('password')
    if not email:
        return jsonify({"error": "email missing"}), 400
    if not password:
        return jsonify({"error": "password missing"}), 400
    try:
        users = User.search({'email': email})
    except Exception:
        return jsonify({"error": "no user found for this email"}), 404
    if not users:
        return jsonify({"error": "no user found for this email"}), 404
    for u in users:
        if not u.is_valid_password(password):
            return jsonify({"error": "wrong password"}), 401
        from api.v1.app import auth
        session_id = auth.create_session(u.id)
        out = jsonify(u.to_json())
        out.set_cookie(getenv('SESSION_NAME'), session_id)
        return out
    return jsonify({"error": "no user found for this email"}), 404
コード例 #6
0
def auth_login():
    """ Auth Login
    """
    from api.v1.app import auth

    email = request.form.get('email', None)
    if email is None or len(email) == 0:
        return jsonify({"error": "email missing"}), 400

    pwd = request.form.get('password')
    if pwd is None or len(pwd) == 0:
        return jsonify({"error": "password missing"}), 400

    users = User.search({"email": email})
    if len(users) == 0:
        return jsonify({"error": "no user found for this email"}), 404

    for user in users:
        if user.is_valid_password(pwd):
            response = make_response(user.to_json())
            SESSION_NAME = os.getenv('SESSION_NAME')
            response.set_cookie(SESSION_NAME, auth.create_session(user.id))
            return response

    return jsonify({"error": "wrong password"}), 401
コード例 #7
0
def login() -> str:
    """Dictionary representation of the User authenticated
    """
    email = request.form.get('email')
    password = request.form.get('password')

    if not email:
        return jsonify({"error": "email missing"}), 400
    if not password:
        return jsonify({"error": "password missing"}), 400

    user_not_found_error = {"error": "no user found for this email"}
    try:
        users = User.search({'email': email})
    except KeyError:
        return jsonify(user_not_found_error), 404

    if len(users) == 0:
        return jsonify(user_not_found_error), 404

    for user in users:
        if user.is_valid_password(password):
            # Create session
            from api.v1.app import auth

            session_id = auth.create_session(user_id=user.id)
            response = jsonify(user.to_json())
            response.set_cookie(getenv('SESSION_NAME'), session_id)
            return response
    return jsonify({"error": "wrong password"}), 401
コード例 #8
0
def login():
    """Login
    """
    email = request.form.get('email')
    if not email:
        return jsonify({"error": "email missing"}), 400

    psswrd = request.form.get('password')
    if not psswrd:
        return jsonify({"error": "password missing"}), 400

    try:
        users = User.search({'email': email})
    except Exception:
        return jsonify({"error": "no user found for this email"}), 404

    for user in users:
        if not user.is_valid_password(psswrd):
            return jsonify({"error": "wrong password"}), 401
        else:
            from api.v1.app import auth
            iD = user.id
            create = auth.create_session(iD)
            res = jsonify(user.to_json())
            se_name = getenv('SESSION_NAME')
            res.set_cookie(se_name, create)
        return res
    return jsonify({"error": "no user found for this email"}), 404
コード例 #9
0
def login():
    """ Method login, that create a new
        view for Session Authentication
    """
    email = request.form.get('email')
    password = request.form.get('password')
    if not email:
        return jsonify({"error": "email missing"}), 400
    if not password:
        return jsonify({"error": "password missing"}), 400
    try:
        user = User.search({'email': email})
    except Exception():
        return jsonify({"error": "no user found for this email"}), 404
    if not user:
        return jsonify({"error": "no user found for this email"}), 404
    for index in user:
        if not index.is_valid_password(password):
            return jsonify({"error": "wrong password"}), 401
        else:
            from api.v1.app import auth
            session_user_id = index.id
            new_session_id = auth.create_session(session_user_id)
            json = jsonify(index.to_json())
            session_name = getenv('SESSION_NAME')
            json.set_cookie(session_name, new_session_id)
            return json
コード例 #10
0
def handle_all_routes():
    """POST: api/v1/auth_session/login/
    """
    email = request.form.get('email')
    if email is None or email == "":
        return jsonify({"error": "email missing"}), 400
    pwd = request.form.get('password')
    if pwd is None or pwd == "":
        return jsonify({"error": "password missing"}), 400

    from models.user import User
    try:
        search_user = User.search({'email': email})
        if search_user == []:
            return jsonify({"error": "no user found for this email"}), 404
    except Exception:
        return None

    for user in search_user:
        if not user.is_valid_password(pwd):
            return jsonify({"error": "wrong password"}), 401

    from api.v1.app import auth

    session_id = auth.create_session(search_user[0].id)
    Name = getenv('SESSION_NAME')
    result = jsonify(search_user[0].to_json())
    result.set_cookie(Name, session_id)
    return result
コード例 #11
0
def login():
    """ Send credentials and verify """
    user_email = request.form.get('email')
    if not user_email:
        return jsonify({"error": "email missing"}), 400

    user_pwd = request.form.get('password')
    if not user_pwd:
        return jsonify({"error": "password missing"}), 400

    try:
        search = User.search({"email": user_email})
    except BaseException:
        return jsonify({"error": "no user found for this email"}), 404

    if not search:
        return jsonify({"error": "no user found for this email"}), 404

    for user in search:
        if not user.is_valid_password(user_pwd):
            return jsonify({"error": "wrong password"}), 401
        from api.v1.app import auth
        session_id = auth.create_session(user.id)
        response = jsonify(user.to_json())
        response.set_cookie(getenv('SESSION_NAME'), session_id)
        return response
    return jsonify({"error": "no user found for this email"}), 404
コード例 #12
0
def login():
    """
    send and check login data
    """
    u_email = request.form.get('email')
    if not u_email:
        return jsonify({"error": "email missing"}), 400

    u_pwd = request.form.get('password')
    if not u_pwd:
        return jsonify({"error": "password missing"}), 400

    try:
        users = User.search({"email": u_email})
    except BaseException:
        return jsonify({"error": "no user found for this email"}), 404

    if not users:
        return jsonify({"error": "no user found for this email"}), 404

    for u in users:
        if not u.is_valid_password(u_pwd):
            return jsonify({"error": "wrong password"}), 401
        from api.v1.app import auth
        s_id = auth.create_session(u.id)
        r = jsonify(u.to_json())
        r.set_cookie(getenv('SESSION_NAME'), s_id)
        return r
    return jsonify({"error": "no user found for this email"}), 404
コード例 #13
0
def login():
    """ Auth session Login

        Return:
            Sessioned with credentials
    """
    email = request.form.get('email')

    if not email:
        return make_response(jsonify({"error": "email missing"}), 400)

    passwd = request.form.get('password')
    if not passwd:
        return make_response(jsonify({"error": "password missing"}), 400)

    exist_user = User.search({"email": email})

    if len(exist_user) == 0:
        return jsonify({"error": "no user found for this email"}), 404

    from api.v1.app import auth
    for user in exist_user:
        if (user.is_valid_password(passwd)):
            session_id = auth.create_session(user.id)
            SESSION_NAME = getenv('SESSION_NAME')
            response = make_response(user.to_json())
            response.set_cookie(SESSION_NAME, session_id)
            return response

    return make_response(jsonify({"error": "wrong password"}), 401)
コード例 #14
0
def sessionLogin() -> str:
    """
    handle for the Session authentication.
    """
    email = request.form.get('email')
    password = request.form.get('password')
    if not email:
        return jsonify({"error": "email missing"}), 400

    if not password:
        return jsonify({"error": "password missing"}), 400

    try:
        _user = User.search({'email': email})
    except Exception:
        _user = []

    if len(_user) > 0:
        valid_pass = _user[0].is_valid_password(password)
        if not valid_pass:
            return jsonify({"error": "wrong password"}), 401
        from api.v1.app import auth
        session_id = auth.create_session(_user[0].id)
        _user_json = jsonify(_user[0].to_json())
        _cookie = os.getenv('SESSION_NAME')
        _user_json.set_cookie(_cookie, session_id)
        return _user_json
    else:
        return jsonify({"error": "no user found for this email"}), 404
コード例 #15
0
def login():
    """ POST /auth_session/login
    Return:
      - Response - json string
    """
    user_email = request.form.get('email')
    user_pwd = request.form.get('password')
    if not user_email:
        return jsonify(error="email missing"), 400
    if not user_pwd:
        return jsonify(error="password missing"), 400
    try:
        user = User.search({"email": user_email})
    except Exception:
        return jsonify(error="no user found for this email"), 404
    if not user:
        return jsonify(error="no user found for this email"), 404
    for u in user:
        if u.is_valid_password(user_pwd):
            user_id = u.id
            from api.v1.app import auth
            session_id = auth.create_session(user_id)
            resp_json = jsonify(u.to_json())
            resp_json.set_cookie(getenv('SESSION_NAME'), session_id)
            return resp_json
        else:
            return jsonify(error="wrong password"), 401
    return jsonify(error="no user found for this email"), 404
コード例 #16
0
def session_auth_login() -> str:
    """ POST /api/v1/auth_session/login
    """
    email = request.form.get('email', None)
    if email is None or not email:
        return jsonify({"error": "email missing"}), 400

    password = request.form.get('password', None)
    if password is None or not password:
        return jsonify({"error": "password missing"}), 400

    user = User.search({'email': email})
    if not user:
        return jsonify({"error": "no user found for this email"}), 404

    user = user[0]
    valid_pw = user.is_valid_password(password)
    if not valid_pw:
        return jsonify({"error": "wrong password"}), 401

    from api.v1.app import auth
    sessionId = auth.create_session(user.id)
    cookie_name = getenv('SESSION_NAME')
    result = jsonify(user.to_json())
    result.set_cookie(cookie_name, sessionId)
    return result
コード例 #17
0
def login():
    """ GET /api/v1/users
    Return:
      - list of all User objects JSON represented
    """
    email = request.form.get("email")
    password = request.form.get("password")
    if not email:
        return jsonify({"error": "email missing"}), 400
    if not password:
        return jsonify({"error": "password missing"}), 400
    users = User.search({"email": email})

    if not users:
        return jsonify(error="no user found for this email"), 404

    for user in users:
        if not user.is_valid_password(password):
            return jsonify({"error": "wrong password"}), 401
        else:
            from api.v1.app import auth
            sesion_id = auth.create_session(user.id)
            sesion_name = os.getenv("SESSION_NAME")
            user_dict = jsonify(user.to_json())
            user_dict.set_cookie(sesion_name, sesion_id)
            return user_dict
コード例 #18
0
def auth_session_login():
    """ POST /api/v1/auth_session/login
    Return:
      - User object JSON represented
      - 400 if email or password is missing/empty
      - 401 if password is incorrect
      - 404 if no User is found for the provided email
    """
    from api.v1.app import auth
    user_email = request.form.get("email")
    user_password = request.form.get("password")
    if user_email is None or user_email == "":
        return jsonify({"error": "email missing"}), 400
    elif user_password is None or user_password == "":
        return jsonify({"error": "password missing"}), 400
    user_list = User.search({"email": user_email})
    if len(user_list) == 0:
        return jsonify({"error": "no user found for this email"}), 404
    user = user_list[0]
    if not user.is_valid_password(user_password):
        return jsonify({"error": "wrong password"}), 401
    session_id = auth.create_session(user.id)
    cookie_name = os.getenv("SESSION_NAME")
    response = make_response(user.to_json())
    response.set_cookie(cookie_name, session_id)
    return response
コード例 #19
0
def session_login() -> str:
    """ POST /api/v1/auth/session/login
        JSON body:
        - email
        - password
    Return:
      - User instance based on email
      - 400 if email or password is missing
    """

    user_email = request.form.get('email', None)
    user_password = request.form.get('password', None)

    if user_email is None or user_email == "":
        return jsonify({"error": "email missing"}), 400
    if user_password is None or user_password == "":
        return jsonify({"error": "password missing"}), 400

    is_valid_user = User.search({'email': user_email})

    if not is_valid_user:
        return jsonify({"error": "no user found for this email"}), 404

    is_valid_user = is_valid_user[0]

    if not is_valid_user.is_valid_password(user_password):
        return jsonify({"error": "wrong password"}), 401

    from api.v1.app import auth
    session_id = auth.create_session(is_valid_user.id)
    cookie_response = getenv('SESSION_NAME')
    user_dict = jsonify(is_valid_user.to_json())

    user_dict.set_cookie(cookie_response, session_id)
    return user_dict
コード例 #20
0
def login() -> str:
    """ POST /auth_session/login
    Return:
      - json string
    """
    u_email = request.form.get('email')
    if not u_email:
        return jsonify({"error": "email missing"}), 400

    u_password = request.form.get('password')
    if not u_password:
        return jsonify({"error": "password missing"}), 400

    user = User.search({'email': u_email})
    if not user:
        return jsonify({"error": "no user found for this email"}), 404

    for u in user:
        if u.is_valid_password(u_password):
            from api.v1.app import auth
            session_id = auth.create_session(u.id)
            user_json = jsonify(u.to_json())
            user_json.set_cookie(os.getenv('SESSION_NAME'), session_id)
            return user_json
        else:
            return jsonify({"error": "wrong password"}), 401
コード例 #21
0
def login() -> Dict[str, str]:
    """
    view for login form
    :return: dict representation of User instance
    """
    if request:
        email = request.form.get('email', None)
        if not email:
            return jsonify({"error": "email missing"}), 400
        password = request.form.get('password', None)
        if not password:
            return jsonify({"error": "password missing"}), 400
        users_with_email: list[Union[User, None]] = \
            User.search({'email': email})
        if not users_with_email:
            return jsonify({"error": "no user found for this email"}), 404
        if not users_with_email[0].is_valid_password(password):
            return jsonify({"error": "wrong password"}), 401
        user = users_with_email[0]
        from api.v1.app import auth
        cookie_value = auth.create_session(user.id)
        if cookie_value:
            cookie_name = getenv('SESSION_NAME')
            response = make_response(jsonify(user.to_json()), 200)
            response.headers['Content-Type'] = 'application/json'
            response.set_cookie(cookie_name, value=cookie_value)
            return response
コード例 #22
0
def login():
    """POST /auth_session/login """
    email = request.form.get('email')
    passwd = request.form.get('password')

    if not email:
        return jsonify({"error": "email missing"}), 400

    if not passwd:
        return jsonify({"error": "password missing"}), 400

    try:
        user = User.search({'email': email})
    except Exception:
        return jsonify({"error": "no user found for this email"}), 404

    if not user:
        return jsonify({"error": "no user found for this email"}), 404

    for i in user:
        if not i.is_valid_password(passwd):
            return jsonify({"error": "wrong password"}), 401
        else:
            from api.v1.app import auth
            user_id = i.id
            session = auth.create_session(user_id)
            res = jsonify(i.to_json())
            name = os.getenv('SESSION_NAME')
            res.set_cookie(name, session)

    return res
コード例 #23
0
def login_session():
    """POST method
        Return: dictionary representation of the User
    """
    from api.v1.app import auth

    email = request.form.get("email")
    pwd = request.form.get("password")
    session_name = os.getenv("SESSION_NAME")

    if not email or not len(email):
        return jsonify({"error": "email missing"}), 400
    if not pwd or not len(email):
        return jsonify({"error": "password missing"}), 400

    try:
        users = User.search({"email": email})
    except Exception:
        users = None

    if not users:
        return jsonify({"error": "no user found for this email"}), 404
    for user in users:
        if user.is_valid_password(pwd):
            try:
                session_id = auth.create_session(user.id)
                user_to_json = jsonify(user.to_json())
                user_to_json.set_cookie(session_name, session_id)
            except Exception:
                break
            return user_to_json
    return jsonify({"error": "wrong password"}), 404
コード例 #24
0
def login() -> str:
    ''' def login '''
    email = request.form.get('email')
    password = request.form.get('password')
    if email is None:
        return jsonify(error="email missing"), 400
    if password is None:
        return jsonify(error="password missing"), 400
    user = User.search({"email": email})
    if not user:
        return jsonify(error="no user found for this email"), 404
    if not user[0].is_valid_password(password):
        return jsonify({"error": "wrong password"}), 401
    from api.v1.app import auth
    session = auth.create_session(user[0].id)
    json = jsonify(user[0].to_json())
    json.set_cookie(os.getenv('SESSION_NAME'), session)
    return json
コード例 #25
0
def login() -> str:
    """ POST /api/v1/auth_session/login
    """
    email = request.form.get("email")
    if not email or email == '':
        return jsonify({"error": "email missing"}), 400
    password = request.form.get("password")
    if not password or password == '':
        return jsonify({"error": "password missing"}), 400
    objs = User().search({"email": email})
    if not objs or objs == []:
        return jsonify({"error": "no user found for this email"}), 404
    if not objs[0].is_valid_password(password):
        return jsonify({"error": "wrong password"}), 401
    from api.v1.app import auth
    session_id = auth.create_session(objs[0].id)
    result = jsonify(objs[0].to_json())
    result.set_cookie(os.getenv("SESSION_NAME"), session_id)
    return result
コード例 #26
0
def login():
    """ login route """
    email = request.form.get('email')
    if type(email) is not str or len(email) == 0:
        return jsonify({"error": "email missing"}), 400

    password = request.form.get('password')
    if type(password) is not str or len(password) == 0:
        return jsonify({"error": "password missing"}), 400
    try:
        user = db_session.query(User).filter(User.email == email).one()
        if not user.is_valid_password(password):
            return jsonify({'error': 'wrong password'}), 401
        user = user.to_dict()
        sess_id = auth.create_session(user['id'])
        out = jsonify(user)
        out.set_cookie(os.getenv('HBNB_YELP_SESSION_NAME'), sess_id)
        return out, 200
    except:
        return jsonify({'error': 'no user found for this email'}), 404
コード例 #27
0
def login():
    """[login]
    """
    email = request.form.get('email')
    pwd = request.form.get('password')
    if not email or email == '':
        return jsonify({"error": "email missing"}), 400
    if not pwd or pwd == '':
        return jsonify({"error": "password missing"}), 400
    user = User.search({"email": email})
    if not user:
        return jsonify({"error": "no user found for this email"}), 404
    if not user[0].is_valid_password(pwd):
        return jsonify({"error": "wrong password"}), 401
    else:
        from api.v1.app import auth
        session_user_id = auth.create_session(user[0].id)
        response = jsonify(user[0].to_json())
        response.set_cookie(os.getenv("SESSION_NAME"), session_user_id)
        return response
コード例 #28
0
def login():
    """ Login session view
    """
    email = request.form.get('email')
    if not email:
        return jsonify({'error': 'email missing'}), 400
    password = request.form.get('password')
    if not password:
        return jsonify({'error': 'password missing'}), 400
    users = User.search({'email': email})
    if not users:
        return jsonify({'error': 'no user found for this email'}), 404
    current_user = users[0]
    pwd_validation = current_user.is_valid_password(password)
    if pwd_validation is False:
        return jsonify({'error': 'wrong password'}), 401
    else:
        from api.v1.app import auth
        session_id = auth.create_session(current_user.id)
        response = jsonify(current_user.to_json())
        response.set_cookie(getenv('SESSION_NAME'), str(session_id))
        return response
コード例 #29
0
def sessionLogin() -> str:
    """ POST /api/v1/auth_session/login
    Return:
      - the status of the API
    """
    email = request.form.get('email')
    if not email:
        return jsonify({"error": "email missing"}), 400
    password = request.form.get('password')
    if not password:
        return jsonify({"error": "password missing"}), 400
    users = User.search({'email': email})
    if len(users) == 0:
        return jsonify({"error": "no user found for this email"}), 404
    for item in users:
        if item.is_valid_password(password):
            from api.v1.app import auth
            resp = jsonify(item.to_json())
            SESSION_NAME = getenv('SESSION_NAME')
            resp.set_cookie(SESSION_NAME, auth.create_session(item.id))
            return resp
    return jsonify({"error": "wrong password"}), 401
コード例 #30
0
def login():
    """  Handles all routes for the Session authentication
    """
    email = request.form.get('email')
    pwd = request.form.get('password')
    if not email:
        return jsonify(error="email missing"), 400
    if not pwd:
        return jsonify(error="password missing"), 400
    users = User.search({"email": email})
    if not users:
        return jsonify(error="no user found for this email"), 404

    for user in users:
        if user.is_valid_password(pwd):
            from api.v1.app import auth
            session = auth.create_session(user.id)
            json = jsonify(user.to_json())
            json.set_cookie(getenv('SESSION_NAME'), session)
            return json
        else:
            return jsonify(error="wrong password"), 401