Autenticação | Credenciais de acesso

Este artigo documento os processo de autenticação, autorização, consulta de informações de acesso e alteração de dados relacionados a uma credencial.

Login

Processo responsável por efetuar o login de autenticação no sistema.

Requisição  
Método POST
URL /api/v1/login
Formato do conteúdo multipart/form-data
Estrutura dos cabeçalhos da requisição (Headers)  
Nome Descrição
Authorization Basic auth contendo os dados de autenticação do client
Accept application/json
Estrutura do conteúdo da requisição    
Propriedade Valor padrão Descrição
grant_type password Tipo de requisição
username - E-mail do usuário do sistema
password - Senha do usuário do sistema
client_id - Identificador do client que está realizando o login
Estrutura de dados da resposta      
Propriedade Tipo Tamanho Descrição
access_token UUID 36 Token de acesso ao sistema, esse token deverá ser passado como header nas demais requisições
token_type String - Tipo de token (geralmente bearer)
refresh_token UUID 36 Token utilizado para recuperação assim que o access_token expirar
scope String - Escopo da autenticação

Exemplo de resposta

{
	"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InVzdWFyaW8iOiJhZG1pbkBtaWNyb3N5cy5pbmYuYnIifSwiaWF0IjoxNzAyMzEzMDU3LCJleHAiOjE3MDI5MTc4NTcsImlzcyI6Imh0dHBzOi8vYXBpLm1zeXNnZXN0b3IuY29tIn0.A-xAiqN33l_sVRqAfHxR37masTvdAnEIlXkbNBZBhBg",
	"token_type": "bearer",
	"refresh_token": "0e1cd7bb-a71f-4208-b7fc-078abf313732",
	"scope": "create read update delete"
}

Logout

Efetua o logout do sistema, esse processo utiliza o token de autenticação enviado no header da requisição para identificar a credencial e invalida esse token. Mais informações de como funciona o processo de autenticação podem ser encontradas aqui.

Requisição  
Método POST
URL /api/v1/logout
Estrutura de dados da resposta
Sem conteúdo de resposta

Alteração de e-mail

Este é o processo em que o usuário solicita a alteração do seu e-mail no sistema.

Requisição  
Método POST
URL /api/v1/credenciais/alterar_email
Estrutura do conteúdo da requisição        
Propriedade Tipo Tamanho Obrigatório Descrição
emailAtual String 256 Sim E-mail atual do usuário
emailNovo String 256 Sim Novo e-mail do usuário
senha String 256 Sim Senha de autenticação

Exemplo de requisição

{
	"emailAtual": "emailatual@gmail.com",
	"emailNovo": "emailnovo@gmail.com",
	"senha": "alt554djbshg"
}
Estrutura de dados da resposta
Sem conteúdo de resposta

Ativação de e-mail

Processo responsável por validar e ativar um novo e-mail do usuário. Este processo é realizado após a solicitação de alteração do e-mail.

Este end-point não requer autenticação.

Requisição  
Método POST
URL /api/v1/credenciais/ativar_email
Estrutura do conteúdo da requisição        
Propriedade Tipo Tamanho Obrigatório Descrição
token UUID 36 Sim Token de confirmação enviado ao e-mail do usuário

Exemplo de requisição

{
    "token": "f59353da-d512-4dc8-b697-5f8d9c531e65"
}
Estrutura de dados da resposta
Sem conteúdo de resposta

Alteração de senha

Processo que possibilita a troca de senha da credencial de acesso do usuário.

Requisição  
Método POST
URL /api/v1/credenciais/alterar_senha
Estrutura do conteúdo da requisição        
Propriedade Tipo Tamanho Obrigatório Descrição
senhaAtual String 256 Sim Senha atual
senhaNova String 256 Sim Nova senha

Exemplo de requisição

{
	"senhaAtual": "123dasde3r8ad",
	"senhaNova": "alt554djbshg"
}
Estrutura de dados da resposta
Sem conteúdo de resposta

Recuperação de senha

Caso o usuário esqueça a sua senha é possível executar este processo de recuperação de senha.

Este end-point não requer autenticação.

Requisição  
Método POST
URL /api/v1/credenciais/recuperar_senha
Estrutura do conteúdo da requisição        
Propriedade Tipo Tamanho Obrigatório Descrição
email String 256 Sim E-mail atual do usuário

Exemplo de requisição

{
	"email": "meuemail@gmail.com"
}
Estrutura de dados da resposta
Sem conteúdo de resposta

Confirmação de credencial

Após a inserção de uma credencial é necessário realizar o processo de confirmação.

Este end-point não requer autenticação.

Requisição  
Método POST
URL /api/v1/credenciais/confirmar
Estrutura do conteúdo da requisição        
Propriedade Tipo Tamanho Obrigatório Descrição
token UUID 36 Sim Token de confirmação enviado ao e-mail do usuário
senha String 256 Sim Senha que será definida para a credencial

Exemplo de requisição

{
	"token": "f59353da-d512-4dc8-b697-5f8d9c531e6",
    "senha": "asda54d565a4das"
}
Estrutura de dados da resposta
Sem conteúdo de resposta

Confirmação de senha

Após a solicitação de recuperação de senha de uma credencial é necessário realizar o processo de confirmação.

Este end-point não requer autenticação.

Requisição
 
Método POST
URL /api/v1/credenciais/confirmar_senha
Estrutura do conteúdo da requisição        
Propriedade Tipo Tamanho Obrigatório Descrição
token UUID 36 Sim Token de confirmação enviado ao e-mail do usuário
senha String 256 Sim Senha que será definida para a credencial

Exemplo de requisição

{
	"token": "f59353da-d512-4dc8-b697-5f8d9c531e6",
    "senha": "asda54d565a4das"
}
Estrutura de dados da resposta
Sem conteúdo de resposta

Informações da credencial

Para saber informações a respeito da credencial logada basta utilizar este recurso.

Requisição  
Método GET
URL /api/v1/credenciais/minha_credencial
Estrutura de dados da resposta      
Propriedade Tipo Tamanho Descrição
id UUID 36 Identificador da credencial
email String 256 E-mail da credencial
autoridade String 50 Nível de acesso: ADMIN, SERVICE ou USER
ativa Boolean - Identifica se a credencial esta ativa
expirada Boolean - Identifica se a credencial esta expirada
bloqueada Boolean - Identifica se a credencial esta bloqueada
acessoExpirado Boolean - Identifica se algum token de acesso da credencial expirou
organizacao Object - Organização vinculada a credencial
organizacao.id UUID 36 Identificador da organização
organizacao.tenant Integer - Número do tenant
organizacao.schema String 50 Nome do schema na base de dados
organizacao.nome String 60 Nome da organização
organizacao.modulos Array - Módulos habilitados para a organização
organizacao.plano Object - Plano da organização
organizacao.plano.id UUID 36 Identificador do plano
organizacao.plano.descricao String 128 Descrição do plano
organizacao.plano.usuarios Integer - Quantidade de usuários do plano
organizacao.plano.armazenamento Integer Quantidade de armazenamento do plano (em MB)
organizacao.plano.documentosMensais Integer - Quantidade de documentos mensais do plano
organizacao.plano.contasFinanceiras Integer - Quantidade de contas financeiras
organizacao.plano.vendasMensais Integer - Quantidade de vendas mensais do plano
organizacao.plano.nfeMensais Integer - Quantidade de Notas fiscais eletrônicas mensais do plano
organizacao.plano.boletosMensais Integer - Quantidade de boletos mensais do plano
organizacao.plano.suporteChat Boolean - Identifica se o plano possui suporte via chat
organizacao.plano.valor Numeric 15-2 Valor mensal do plano 
organizacao.endereco Object - Endereço da organização
organizacao.endereco.municipio Object - Município em que a organização está alocada
organizacao.endereco.municipio.id UUID 36 Identificador único do município
organizacao.endereco.estado Object - Estado em que a organização está alocada
organizacao.endereco.estado.id UUID 36 Identificador único do estado
organizacao.fiscal Object - Informações fiscais da credencial
organizacao.fiscal.serie Integer - Informa qual a série configurada na organização da credencial
organizacao.fiscal.certificado Object - Certificado da organização caso houver
organizacao.fiscal.certificado.nome String 255 Nome do certificado digital carregado
organizacao.fiscal.certificado.vencimento Date - Data de vencimento do certificado
recursos Array - Recursos e permissões do usuário
recursos.identificacao String 128 Identificação do recurso
recursos.permissoes Array - Permissões do usuário
recursos.permissoes.identificacao String 128 Identificação da permissão
setores Array - Setores de acesso do usuário
setores.id UUID 36 Identificador do setor
setores.nome String 60 Nome do setor
configuracoes
Array - Configurações relacionadas a credencial do usuário
configuracoes.chave String 128 Identificador único da configuração
configuracoes.valor String 128 Valor da configuração

Exemplo de resposta

{
    "id": "dbff5be0-4f2a-11ea-b77f-2e728ce881255",
    "email": "contato@minhaempres.com.br",
    "autoridade": "USER",
    "ativa": true,
    "expirada": false,
    "bloqueada": false,
    "acessoExpirado": false,
    "organizacao": {
        "id": "dbff67ca-4f2a-11ea-b77f-2e728ce88125",
        "tenant": 1,
        "schema": "schema1",
        "nome": "Minha Empresa Ltda",
        "modulos": [
            "DOCUMENTOS_DIGITAIS"
        ],
        "plano": {
            "id": "57d49fb1-3b22-43e1-aa0c-fb1264dfc085",
            "descricao": "Grátis",
            "usuarios": 1,
            "armazenamento": 10,
            "documentosMensais": 3,
            "contasFinanceiras": 2,
            "vendasMensais": 5,
            "nfeMensais": 0,
            "boletosMensais": 0,
            "suporteChat": false,
            "valor": 0
        },
      "fiscal": {
      	"serie": 558",
        "certificado": {
      		"nome": "Nome doc ertificado",
        	"vencimento": "2020-13-15"
      	},
      }
    },
    "recursos": [
        {
            "identificacao": "ESTADOS",
            "permissoes": [
                {
                    "identificacao": "VISUALIZAR"
                }
            ]
        },
        {
            "identificacao": "MUNICIPIOS",
            "permissoes": [
                {
                    "identificacao": "VISUALIZAR"
                }
            ]
        },
        {
            "identificacao": "PAISES",
            "permissoes": [
                {
                    "identificacao": "VISUALIZAR"
                }
            ]
        },
        {
            "identificacao": "PRODUTOS",
            "permissoes": [
                {
                    "identificacao": "EDITAR"
                },
                {
                    "identificacao": "EXCLUIR"
                },
                {
                    "identificacao": "INSERIR"
                },
                {
                    "identificacao": "VISUALIZAR"
                }
            ]
        }
    ],
    "setores": [
        {
            "id": "dbff6e64-4f2a-11ea-b77f-2e728ce88125",
            "nome": "Geral"
        }
    ],
    "configuracoes": [
        {
            "chave": "MOSTRAR_AJUDA",
            "valor": "SIM"
        },
        {
            "chave": "TEMA",
            "valor": "AZUL"
        }
    ]
}

Salvar configuração da credencial

Este recurso salva uma configuração para a credencial atual logada.

Requisição  
Método POST
URL /api/v1/credenciais/minha_credencial/configuracoes
Estrutura do conteúdo da requisição        
Propriedade Tipo Tamanho Obrigatório Descrição
chave String 128 Sim Identificador único da configuração
valor String 128 Sim Valor da configuração

Exemplo de requisição

{
	"chave": "TEMA",
	"valor": "AZUL"
}
Estrutura de dados da resposta
Sem conteúdo de resposta

Listar configurações da credencial

Este recurso lista as configurações da credencial logada.

Requisição  
Método GET
URL /api/v1/credenciais/minha_credencial/configuracoes
Estrutura de dados da resposta      
Propriedade Tipo Tamanho Descrição
chave String 128 Identificador único da configuração
valor String 128 Valor da configuração

Exemplo de resposta

[{
		"chave": "MOSTRAR_AJUDA",
		"valor": "SIM"
	},
	{
		"chave": "TEMA",
		"valor": "AZUL"
	}
]

 

Back to top