Metadata-Version: 1.1
Name: aiohttp-login
Version: 1.0.3
Summary: Registration and authorization (including social) for aiohttp apps
Home-page: https://github.com/imbolc/aiohttp-login
Author: Imbolc
Author-email: imbolc@imbolc.name
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 `live
        example <http://aiohttp-login.imbolc.name/>`__ and its 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
