Metadata-Version: 2.1
Name: mfa-authenticator
Version: 1.0.1
Summary: This helps you setup MFA with 3rd Party Authenticator
Author-email: Sunday Ajayi <sunnexajayi@gmail.com>
Project-URL: homepage, https://your_project_homepage.com
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: python-decouple
Requires-Dist: pyotp
Requires-Dist: qrcode
Requires-Dist: pillow

# MFA SETUP AND VERIFICATION PACKAGE



## This is a python package for MFA setup and verification using 3rd Party Authenticating Applications (like Google Authenticator, Microsoft Authenticator,Sale Force, etc)


### Setup MFA: Onboard on a 3rd Party Authenticator Application:
    1. Generate the MFA URL AND SECRET KEY
    2. Generate the QR Code version of the MFA URL
    3. Integrate with the 3rd party Authenticator :
            a. Scan the QR code generated
            b. Enter the Secret Key



### MFA Verification: 
    1. Insert the code and verify it



### Sample Code:
    from mfa import MFA


    1. Generate the MFA URL AND SECRET KEY
        m = MFA(service_name, user_details)
            => service_name is the name of the service (eg: company name) : STRING
            => user_details is the user details (eg: email address, phone number, etc):  STRING
        
        Example: 
            m = MFA('Sunny Inc','sunday@test.com') 
            mfa_url,secret_key = m.generate_mfa_code()
            print(mfa_url)
            print(secret_key)

    2. Generate the QR Code version of the MFA URL
        m.generate_qr_code(mfa_url)


    3. Verify the Generated Code
        generated_code = '123456' # generated by the user via the 3rd party authenticator app (Google Authenticator, Microsoft Authenticator, etc)
        
        status = m.verify_code(generated_code)
        print(status)




### NOTE: 

    1 -> Developer will be expected to the secret Key for the use ( it should be unique for each user)
            
    2 -> End User should be asked to save the secret key or I will suggest you save it in a db with a
        key value pair where the key is the recovery code (unique) and value is the secret key. So you share the recovery code with the user

    3 -> When they can't recover the qr or lost the mobile device, you can ask them for the recovery code then use it to get the secret 
        key then use it to setup on the 3rd party authenticator app.






