Esempio n. 1
0
    async def method_post(self, request: Request, body: dict, session, *args,
                          **kwargs) -> BaseHTTPResponse:

        request_model = RequestAuthUserDto(body)

        try:
            db_user = get_user_by_login(session, login=request_model.login)
        except DBUserNotExists:
            raise SanicUserNotFound("User not found")

        try:
            check_hash(request_model.password, db_user.password)
        except CheckPasswordHashException:
            raise SanicPasswordHashException("Wrong password")

        payload = {
            "sub": db_user.id,
        }
        token = create_token(payload)
        response = AuthResponseObject(token)

        response_model = ResponseAuthUserDto(response)

        return await self.make_response_json(
            body=response_model.dump(),
            status=200,
        )
Esempio n. 2
0
    async def method_post(self, request: Request, body: dict, session, *args,
                          **kwargs) -> BaseHTTPResponse:

        request_model = RequestAuthEmployeeDto(body)

        try:
            db_employee = employee_queries.get_employee(
                session, login=request_model.login)
        except DBEmployeeNotExistsException:
            raise SanicEmployeeNotFound('Employee not found')

        try:
            check_hash(request_model.password, db_employee.password)
        except CheckPasswordHashException:
            raise SanicPasswordHashException('Wrong password')

        payload = {
            'eid': db_employee.id,
        }

        token = create_token(payload)
        response = AuthResponseObject(token)

        response_model = ResponseAuthEmployeeDto(response)

        return await self.make_response_json(
            body=response_model.dump(),
            status=200,
        )
def test_invalid_password_hash(password_data):

    hsh_ = generate_hash(password_data['password3'])

    with pytest.raises(CheckPasswordHashException):
        check_hash(password_data['password'], hsh_)
def test_valid_password_hash(password_data):

    hsh_ = generate_hash(password_data['password2'])

    assert check_hash(password_data['password'], hsh_) is None