Metadata-Version: 1.1
Name: aiohttp-login-jwt
Version: 1.4.0
Summary: Registration and authorization (including social) for aiohttp apps
Home-page: https://github.com/kirlf/aiohttp-login
Author: Imbolc, Vladimir Fadeev
Author-email: vovenur@gmail.com
License: ISC
Description: aiohttp-login
        =============
        
        Registration and authorization (including social) for aiohttp apps
        
        With just a few settings you’ll give for your
        `aiohttp <https://github.com/KeepSafe/aiohttp>`__ site:
        
        -  registration with email confirmation
        -  authorization by email or social account (facebook, google and
           vkontakte for now)
        -  reset password by email
        -  change email with confirmation
        -  edit current password
        
        You can see all of this staff alive
        `here <http://aiohttp-login.imbolc.name/>`__
        
        Databases
        ---------
        
        You can use this lib with different database backends:
        
        -  postgres with `asyncpg <https://github.com/MagicStack/asyncpg>`__
        -  mongodb with `motor <https://github.com/mongodb/motor>`__
        -  the db you need - *it’s very easy to add a new backend*
        
        UI themes
        ---------
        
        The library designed to easily change UI themes. Currently
        ``bootstrap-3`` and ``bootstrap-4`` themes are available. But it’s very
        easy to add new themes, actually theme - is just a folder with jinja2
        templates.
        
        Installation and configuration
        ------------------------------
        
        Just install the library from pypi:
        
        ::
        
           pip install aiohttp-login
        
        Choice and configure one of database storages.
        
        For postgres with `asyncpg <https://github.com/MagicStack/asyncpg>`__:
        
        .. code:: python
        
           import asyncpg
           from aiohttp_login.asyncpg_storage import AsyncpgStorage
        
           pool = await asyncpg.create_pool(dsn='postgres:///your_db')
           storage = AsyncpgStorage(pool)
        
        For mongodb with `motor <https://github.com/mongodb/motor>`__:
        
        .. code:: python
        
           from motor.motor_asyncio import AsyncIOMotorClient
           from aiohttp_login.motor_storage import MotorStorage
        
           db = AsyncIOMotorClient(io_loop=loop)['your_db']
           storage = MotorStorage(db)
        
        Now configure the library with a few settings:
        
        .. code:: python
        
           app = web.Application(loop=loop)
           app.middlewares.append(aiohttp_login.flash.middleware)
           aiohttp_jinja2.setup(
               app,
               loader=jinja_app_loader.Loader(),
               context_processors=[aiohttp_login.flash.context_processor],
           )
           aiohttp_login.setup(app, storage, {
               'CSRF_SECRET': 'secret',
        
               'VKONTAKTE_ID': 'your-id',
               'VKONTAKTE_SECRET': 'your-secret',
               'GOOGLE_ID': 'your-id',
               'GOOGLE_SECRET': 'your-secret',
               'FACEBOOK_ID': 'your-id',
               'FACEBOOK_SECRET': 'your-secret',
        
               'SMTP_SENDER': 'Your Name <your@gmail.com>',
               'SMTP_HOST': 'smtp.gmail.com',
               'SMTP_PORT': 465,
               'SMTP_USERNAME': 'your@gmail.com',
               'SMTP_PASSWORD': 'password'
           })
        
        That’s all. Look at the code in the
        `example <https://github.com/imbolc/aiohttp-login/tree/master/example>`__
        folder. Full list of available settings you can find in
        `aiohttp_login/cfg.py <https://github.com/imbolc/aiohttp-login/blob/master/aiohttp_login/cfg.py>`__
        file.
        
        Run the example
        ---------------
        
        Create a virtual environment and install the dependencies:
        
        ::
        
           cd example
           python3 -m venv venv
           source venv/bin/activate
           pip install -r requirements.txt
        
        Create postgres database and tables:
        
        ::
        
           createdb aiohttp_login
           psql -d aiohttp_login -f ../aiohttp_login/pg_tables.sql
        
        Rename ``settings.py.template`` to ``settings.py`` and populate it with
        real data.
        
        Run the server:
        
        ::
        
           python app.py
        
        Run tests
        ---------
        
        ::
        
           pip install -r requirements-dev.txt
           py.test
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
