Metadata-Version: 2.1
Name: django-oauth-usp
Version: 1.2.1
Summary: 
License: MIT
Author: Marcelo Schneider
Author-email: schenider.fei@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Dist: authlib (>=1.2.1,<2.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Description-Content-Type: text/markdown

================
Django OAuth USP
================

Este pacote permite que usuários façam login utilizando a senha única USP.

Além da autenticação OAuth este pacote também possui migrations para o armazenamento dos
usuários no banco de dados.

É recomendado que a estas migrations sejam rodadas antes de qualquer outra migration, devido
a dificuldade de alteração do model User depois de realizada a primeira migration:
`Using a custom user model when starting a project`__

__ https://docs.djangoproject.com/en/3.1/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project

Quick start
-----------

1. Adicione "django_oauth_usp" em INSTALLED_APPS no arquivo settings.py::

    INSTALLED_APPS = [
        ...
        'django_oauth_usp.accounts',
    ]

2. Adicone o Middleware OAuthUspMiddleware::

    MIDDLEWARE = [
        ...
        'django_oauth_usp.accounts.middleware.OAuthUspMiddleware',
    ]

3. No arquivo settings.py, informe o Model que será utilizado para armazenar os usuários::

        AUTH_USER_MODEL= 'accounts.UserModel'

4. Defina os parâmetro para OAuth::

    OAUTH_CALLBACK_ID = 'callback_id_da_aplicação'

    AUTHLIB_OAUTH_CLIENTS = {
        'usp': {
            'client_id': 'meu_client_id',
            'client_secret': 'meu_secret_key'
        }
    }

    #Rota utilizada para a view accounts_authorize
    REDIRECT_URI = '/auth/authorize'

    #Lista com o código das unidades que poderão ter acesso.
    ALLOWED_UNIDADES = [12, 13, 14]
5. Rode as migrations::

    python manage.py migrate

6. Adicione rotas para as views accounts_login e accounts_authorize::

    urlpatterns = [
        path('login', accounts_login, name='login'),
        path('authorize', accounts_authorize, name='authorize'),
    ]



