Metadata-Version: 2.1
Name: Flask-Authlib
Version: 1.3.1
Summary: Authentication library for Flask Web Framework 
Home-page: https://github.com/AbduazizZiyodov/flask-authlib
Author: Abduaziz Ziyodov
Author-email: abduaziz.ziyodov@mail.ru
License: MIT
Description: # **Flask-Authlib** 🔐
        
        [![PyPI version](https://badge.fury.io/py/Flask-Authlib.svg)](https://badge.fury.io/py/Flask-Authlib)
        
        <hr>
        
        Flask-Authlib - authentication library for Flask Web Framework.
        
        Advantages:
        - Templates: login , register
        - Default `user` Model
        - View Functions
        
        # Install
        
        By using `pip`:
        
        ```bash
        $ pip install flask-authlib
        ```
        
        # Simple Usage
        
        - Import `Flask` from `flask`
        - Import `SQLAlchemy` from `flask_sqlalchemy`
        - Import `Auth` from `flask_authlib`
        
        Code Sample:
        
        ```python
        from flask import Flask
        from flask_sqlalchemy import SQLAlchemy
        from flask_authlib import Auth
        ```
        
        Define your `app` and `db`. Create auth var from `Auth` class and call `init()` method:
        
        ```python
        from flask import Flask
        from flask_sqlalchemy import SQLAlchemy
        from flask_authlib import Auth
        
        app = Flask(__name__)
        db = SQLAlchemy(app)
        
        auth = Auth(app=app, db=db)
        auth.init()
        
        # simple route
        @app.route('/')
        def home_page():
            return {'message': 'Hi, bro 😁'}
        ```
        
        Run your backend:
        
        ```bash
        $ export FLASK_APP=<app> && export FLASK_ENV=development
        $ flask run --reload
        ```
        
        **Screenshots:**
        
        ![LOGIN](screenshots/login.PNG)
        Login page at `/login`
        
        ![REGISTER](screenshots/register.PNG)
        Register page at `/register`
        
        # **Advanced Usage**
        
        > You can change urls
        
        **Defaults**
        
        - Home page - `/`
        - Login page - `/login`
        - Register page - `/register`
        - Logout url - `/logout`
        
        
        Write your urls before calling `init()` method:
        
        ```python
        ...
        
        auth = Auth(app=app, db=db, login_url='/mylogin',
                    register_url='/myreg', logout_url='/myexit',
                    home_page='/')
        auth.init()
        ...
        ```
        
        > You can set your own template config!
        
        You can change:
        
        - Button color on forms
        - Form title at login and register page
        - All labels like Username.. email ...
        - Text in button.
        
        **Default template config**
        
        ```json
        
        config = {
                "LOGIN_BTN": "btn-success",
                "REGISTER_BTN": "btn-warning",
        
                "LOGIN_BTN_TEXT": "Login",
                "REGISTER_BTN_TEXT": "Register",
        
                "LOGIN_PAGE_TITLE": "Login",
                "REGISTER_PAGE_TITLE": "Register",
        
                "LOGIN_LABEL_USERNAME": "Username",
                "LOGIN_LABEL_PASSWORD": "Password",
                "REGISTER_LABEL_USERNAME": "Username",
                "REGISTER_LABEL_PASSWORD": "Password",
                "REGISTER_LABEL_EMAIL": "Email address"
        }
        ```
        
        _p.s btn colors based on bootstrap classes_
        
        Setting your config:
        
        ```python
        ...
        my_config = {
                "LOGIN_BTN": "btn-danger",
                "REGISTER_BTN": "btn-primary",
        
                "LOGIN_PAGE_TITLE": "Admin",
                "REGISTER_PAGE_TITLE": "Admin"
        }
        auth = Auth(app=app, db=db, template_config=my_config)
        auth.init()
        ...
        ```
        
        >If some settings are not entered, they remain as default
        
        **Screenshots:**
        
        >![LOGIN](screenshots/login_2.PNG)
        >Login page
        
        <hr>
        
        >![REGISTER](screenshots/register_2.PNG)
        >Register page
        
        # **Running Example** 🚀
        
        ### First way
        
        > Required  `docker` 
        
        Project directory have:
        - dockerfile
        - docker_compose.yml
        
        For running this you have to type this command:
        
        ```bash
        $ docker-compose up
        ```
        
        Screenshot:
        
        ![DOCKER](screenshots/docker.PNG)
        
        ## **Second way**
        
        Clone this repo:
        
        ```bash
        $ git clone https://github.com/AbduazizZiyodov/flask-authlib.git
        ```
        
        Navigate to `/example`:
        
        ```bash
        $ cd example/
        ```
        
        Install all required packages:
        
        ```bash
        $ pip install -r requirements.txt
        ```
        
        Run development server:
        * `$ python app.py` or
        * `$ gunicorn app:app` or
        * `$ export FLASK_APP=app && flask run --reload`
        
        Enjoy 😅
        
        **Author: Abduaziz Ziyodov**
Platform: any
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Environment :: Web Environment
Description-Content-Type: text/markdown
