Skip to main content

A user authentication and verification system using MongoDB.

Project description

easy_mongodb_auth_handler

A user authentication and verification system using MongoDB, supporting email-based verification, password hashing, and reset mechanisms.

Installation

pip install easy-mongodb-auth-handler

Setup

Make sure you have MongoDB installed and running. You also need access to an SMTP mail server for sending verification and reset codes.

Project Structure

easy_mongodb_auth_handler/
├── setup.py
├── src/
│   └── easy_mongodb_auth_handler/
│       ├── __init__.py
│       ├── auth.py
│       └── utils.py

Features

  • User registration with and without email verification
  • Email format validation
  • Secure password hashing with bcrypt
  • User login/authentication
  • Password reset via email verification
  • MongoDB-based user data persistence

Usage

from easy_mongodb_auth_handler import Auth

auth = Auth(
    mongo_uri="mongodb://localhost:27017",
    db_name="myapp",
    mail_server="smtp.example.com",
    mail_port=587,
    mail_username="your_email@example.com",
    mail_password="your_email_password"
)

This code initializes the package. The mail arguments are not required, but needed to use verification code functionality. All methods return True or False with additional detailed outcome reports.

Function Reference - auth.func_name(params)

register_user(email, password)

Registers a user and sends a verification code via email. Returns a success status and message.

verify_user(email, code)

Verifies a user by checking the provided verification code against the database entry.

authenticate_user(email, password)

Authenticates a user by checking their email and password. Requires the user to be verified.

delete_user(email, password) 

Deletes a user from the database if credentials match.

register_user_no_verif(email, password)  

Registers a user without requiring email verification. Useful for internal tools or test environments.

reset_password_no_verif(email, old_password, new_password)

Resets the user's password after verifying the old password. Does not require an email code.

generate_reset_code(email)

Generates and emails a password reset code to the user.

verify_reset_code_and_reset_password(email, reset_code, new_password)  

Verifies a password reset code and resets the user's password.

Requirements

  • Python >= 3.8
  • pymongo >= 4.0.0
  • bcrypt >= 4.0.0

License

GNU Affero General Public License v3

Author

Lukbrew25

...and all future contributors!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easy_mongodb_auth_handler-1.0.3.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easy_mongodb_auth_handler-1.0.3-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file easy_mongodb_auth_handler-1.0.3.tar.gz.

File metadata

File hashes

Hashes for easy_mongodb_auth_handler-1.0.3.tar.gz
Algorithm Hash digest
SHA256 5a8700af82c1268f9c67fe8ff8da68acb3e85b9bd59517b6f0213a4c610b414d
MD5 c24c0de7f537c1812a64fb3f50fc963d
BLAKE2b-256 34574fcb12e824180691186b520378da9b2c53d1f930cec05a7d2c9bbcd72b68

See more details on using hashes here.

Provenance

The following attestation bundles were made for easy_mongodb_auth_handler-1.0.3.tar.gz:

Publisher: python-publish.yml on lukbrew25/easy_mongodb_auth_handler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easy_mongodb_auth_handler-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for easy_mongodb_auth_handler-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6c71d4ac304feafaec31cd89d6cc44fab64d9a3757a2a260b830815d63b146e3
MD5 cc5cc02ef6e18a23314c0e28aba86615
BLAKE2b-256 033416adea2956a33cdb85ffefea1830d277de39f4b9b96b1d359e556884db52

See more details on using hashes here.

Provenance

The following attestation bundles were made for easy_mongodb_auth_handler-1.0.3-py3-none-any.whl:

Publisher: python-publish.yml on lukbrew25/easy_mongodb_auth_handler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page