Skip to content

dvcirilo/django-allauth-suap

Repository files navigation

Social Login Provider do SUAP para o django-allauth

Esse projeto permite a autenticação OAuth2 do SUAP para projetos Django que usem a biblioteca django-allauth.

Instalação

  • Instale e configure o Django Allauth conforme a documentação
  • Instale o pacote django-allauth-suap:
pip install django-allauth-suap

settings.py

  • Adicione ao INSTALLED_APPS:
INSTALLED_APPS = [
    ...
    # Padrão do allauth
    allauth
    allauth.account
    allauth.socialaccount

    # SUAP Provider
    allauth_suap
    ...
]
Name: Nome do App
Authorization grant type: Authorization code
# Em desenvolvimento usar o exemplo abaixo e em produção ajustar o domínio, porta e protocolo (HTTPS), mantendo o endpoint.
Redirect URIs:
http://127.0.0.1:8000/accounts/suap/login/callback/
Client type: Confidential # Já que as chaves ficam seguras no back-end.
Algorithm: No OIDC support
Ativo: check
  • Guarde o Client secret pois não será mostrado novamente;
  • Adicione ao settings.py do projeto:
SOCIALACCOUNT_PROVIDERS = {
    "suap": {
        # Talvez funcione para outras instituições apenas
        # mudando a URL, mas só foi testado no IFRN.
        "SUAP_URL": "https://suap.ifrn.br",
        # Escopo básico. Para acessar dados como CPF, adicione
        # "documentos_pessoais".
        "SCOPE": ["identificacao", "email"]
        "APP": {
            # IMPORTANTE! Use algum mecanismo para ler esses valores
            # de um .env, por exemplo.
            # Não suba suas chaves para o repositório!!
            "client_id": "seu_client_id",
            "secret": "seu_client_secret",
        },
    }
}

Uso

  • O Provider apenas recupera as informações básicas do usuário padrão Django: username (matrícula), email, first_name e last_name.
  • Caso seja necessário recuperar mais dados (ex. cpf, campus), crie um SocialAcountAdapter customizado e use os métodos disponíveis, conforme a documentação do allauth.

Exemplos

Contribuições

O projeto está aberto a contribuições, inclusive para adequações que permitam o funcionamento com outras instituições que usem o SUAP.

Referências

About

SUAP social login provider for django-allauth

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages