Metadata-Version: 2.1
Name: master_auth
Version: 0.0.2
Summary: check auth use mongodb
Project-URL: Documentation, https://asmitul.github.io/master_auth
Project-URL: Issues, https://github.com/asmitul/master-auth/issues
Project-URL: Source, https://github.com/asmitul/master-auth
Author: asmitul
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <3.12,>=3.8
Requires-Dist: bcrypt>=4.0.1
Requires-Dist: pymongo>=4.5.0
Provides-Extra: docs
Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.1.0; extra == 'docs'
Requires-Dist: mkdocs-material~=8.5.4; extra == 'docs'
Requires-Dist: mkdocstrings[python]~=0.19.0; extra == 'docs'
Requires-Dist: mkdocs~=1.4.0; extra == 'docs'
Provides-Extra: quality
Requires-Dist: black~=22.10.0; extra == 'quality'
Requires-Dist: mypy~=1.4.0; extra == 'quality'
Requires-Dist: pre-commit~=2.20.0; extra == 'quality'
Requires-Dist: ruff~=0.0.263; extra == 'quality'
Provides-Extra: tests
Requires-Dist: pytest-cov~=4.1; extra == 'tests'
Requires-Dist: pytest~=7.1.2; extra == 'tests'
Description-Content-Type: text/markdown

# master-auth

check auth use mongodb 

<!-- insert useage -->
## how to use

### install
```python
pip install master_auth
```

### example
```python
from master_auth import core
import os
import dotenv
dotenv.load_dotenv()

MONGODB_USER = os.getenv("MONGODB_USER")
MONGODB_PASSWORD = os.getenv("MONGODB_PASSWORD")
MONGODB_HOST = os.getenv("MONGODB_HOST")
MONGODB_PORT = os.getenv("MONGODB_PORT")
DATABASE_NAME =  os.getenv("APP_NAME") + os.getenv("MONGODB_DATABASE_NAME")
COLLECTION_NAME = "master_auth"

def save_password(username,password):
    result = core.save_password(
        mongodb_username=MONGODB_USER,
        mongodb_password=MONGODB_PASSWORD,
        mongodb_host=MONGODB_HOST,
        mongodb_port=MONGODB_PORT,
        database_name = DATABASE_NAME,
        collection_name = COLLECTION_NAME,
        username = username,
        password = password
    )

    if result:
        print("Password saved successfully!")
        return True
    else:
        print("Username already exists!")
        return False

def update_password(username,password_old,password_new):
    result = core.update_password(
        mongodb_username=MONGODB_USER,
        mongodb_password=MONGODB_PASSWORD,
        mongodb_host=MONGODB_HOST,
        mongodb_port=MONGODB_PORT,
        database_name = DATABASE_NAME,
        collection_name = COLLECTION_NAME,
        username = username,
        password_old = password_old,
        password_new = password_new
    )

    if result:
        print("Password updated successfully!")
        return True
    else:
        print("Old password is not correct!")
        return False

def verify_password(username,password):
    result = core.verify_password(
        mongodb_username=MONGODB_USER,
        mongodb_password=MONGODB_PASSWORD,
        mongodb_host=MONGODB_HOST,
        mongodb_port=MONGODB_PORT,
        database_name = DATABASE_NAME,
        collection_name = COLLECTION_NAME,
        username = username,
        password = password
    )

   if result:
        print("Password is correct!")
        return True
   else:
        print("Password is not correct!")
        return False

if __name__ == "__main__":
    save_password("test","test")
    # Username does not exist!
    # Password saved successfully!

    # update_password("test","test","test2")
    # Password updated successfully!

    # verify_password("test","test2")
    # Password is correct!
```

## v0.0.2
- [x] update some bugs

## v0.0.1
- [x] save password to mongodb , password is hashed
- [x] check password from mongodb , password is hashed
- [x] update password to mongodb , password is hashed