Exemplo n.º 1
0
def login_user(username: str, password: str):
    if not username:
        return error_message("Missing username parameter")
    if not password:
        return error_message("Missing password parameter")

    user = User.query.filter_by(username=username).first()
    if not user or not bcrypt.check_password_hash(user.password, password):
        return error_message("Wrong username or password", 401)

    tokens = create_tokens(identity=username)

    return json_response(tokens)
Exemplo n.º 2
0
def login_user(username: str, password: str):
    if not username:
        return error_message("Missing username parameter")
    if not password:
        return error_message("Missing password parameter")

    user = User.query.filter_by(username=username).first()
    if not user:
        return error_message("User name not found", 401)
    if not bcrypt.check_password_hash(user.password, password):
        return error_message("Wrong password", 401)

    # Identity can be any data that is json serializable
    access_token = create_access_token(identity=username)
    return json_response({'access_token': access_token})
Exemplo n.º 3
0
def register_user(username: str, email: str, password):
    if not username:
        return error_message("Missing username parameter")
    if not email:
        return error_message("Missing email parameter")
    if not password:
        return error_message("Missing password parameter")

    if User.query.filter_by(username=username).first():
        return error_message("User name already exist", 409)

    password_hash = bcrypt.generate_password_hash(password).decode('utf-8')
    # TODO: verify email
    # TODO: check the uniqueness of the email
    new_user = User(username=username, email=email, password=password_hash)
    db.session.add(new_user)
    db.session.commit()

    # Identity can be any data that is json serializable
    access_token = create_access_token(identity=username)
    return json_response({'access_token': access_token}, 201)
Exemplo n.º 4
0
def register_user(username: str, email: str, password):
    if not username:
        return error_message("Missing username parameter")
    if not email:
        return error_message("Missing email parameter")
    if not password:
        return error_message("Missing password parameter")

    if User.query.filter((User.username == username)
                         | (User.email == email)).first():
        return error_message("User already exist", 409)

    password_hash = bcrypt.generate_password_hash(password).decode('utf-8')
    # TODO: verify email
    new_user = User(username=username, email=email, password=password_hash)
    new_user.roles.append(Role(name='User'))
    db.session.add(new_user)
    db.session.commit()

    tokens = create_tokens(identity=username)

    return json_response(tokens, 201)
Exemplo n.º 5
0
 def test_json_response(self):
     with app.test_request_context():
         json_response({"message": "test response"})
Exemplo n.º 6
0
def refresh_token():
    current_user = get_jwt_identity()
    new_access_token = create_access_token(identity=current_user, fresh=False)

    return json_response({'access_token': new_access_token}, 201)
Exemplo n.º 7
0
def logout_user(decoded_token):
    add_token_to_database(decoded_token, app.config['JWT_IDENTITY_CLAIM'])
    return json_response({'message': "Successfully logged out"})