========
Accounts
========

Accounts es un app de Django que permite el control y manejo de cuentas de usuario por medio del uso de tokens. Utiliza el Django Rest Framework.

Accounts contiene las siguientes funcionalidades:

- Registro de usuario.
- Login y logout.
- Expiracion de tokens.

Inicio rapido
-------------

1. Agrega "accounts" a tus apps instaladas::
    
    INSTALLED_APPS = (
        ...
        'accounts.apps.AccountsConfig',
    )

2. Instala Django Rest Framework y agregalo a tus apps instaladas asi::
    
    INSTALLED_APPS = (
        ...
        'rest_framework',
        'rest_framework.authtoken'
    )

3. Registra el modelo de usuario y el backend de autenticacion en tu archivo settings::

    AUTH_USER_MODEL = 'accounts.User'
    AUTHENTICATION_BACKENDS = (
        'accounts.authentication.CustomAuthenticationBackend'
    )

4. Agrega el tiempo de expiracion para los tokens en tu archivo settings::
    
    EXPIRATION_TIME = 24

5. Registra tus clases de permisos y autenticacion para el rest framework, puedes usar algo como esto::
    REST_FRAMEWORK = {
        'DEFAULT_PERMISSION_CLASSES': (
            'rest_framework.permissions.IsAuthenticated',
        ),
        'DEFAULT_AUTHENTICATION_CLASSES': (
            'accounts.authentication.ExpiringTokenAuthentication',
        ),
        'DEFAULT_FILTER_BACKENDS': (
            'rest_framework.filters.DjangoFilterBackend',
            'rest_framework.filters.SearchFilter'
        ),
        'PAGINATE_BY': 10
    }
   
6. Incluye las urls de accounts en tu proyecto, algo asi::
    
    from accounts import urls as accounts_urls
    url(r'^accounts/', include(accounts_urls))

7. Corre las pruebas para aseguranos que el paquete se instalo correctamente::
    
    python3 manage.py test
