Neste artigo, veremos como a plataforma sem código AppMaster.io resolve o problema de acesso a dados para usuários de aplicativos.
Isso acontece introduzindo funções como Usuários, Moderadores, Administradores e outros requisitos. Esta solução oferece mais flexibilidade dentro de seu aplicativo construído e controla o acesso a informações e funcionalidades dentro do aplicativo construído.
O artigo será útil para quem deseja mergulhar na funcionalidade da plataforma AppMaster.io e ver suas capacidades em termos de configurações de acesso a dados por funções.
Мodule Auth por AppMaster.io
O cadastro no aplicativo montado em nossa plataforma é representado pelo módulo Auth , permitindo criar e editar grupos de usuários e acessar seus direitos. O módulo Auth já está pré-instalado no projeto quando é criado.
Configurações do módulo de autenticação disponíveis:
Grupos de inscrição — lista de grupos de usuários que podem se registrar;
SignUp — inclui a possibilidade de se registrar no aplicativo;
Tempo limite da sessão (minutos ) — o tempo após o qual a sessão do usuário atual terminará se o usuário estiver ocioso (em minutos). O padrão é 60 minutos;
Atraso de login com falha (em ms) — tempo de atraso para uma resposta do servidor em caso de tentativa de login malsucedida (em ms). O padrão é 0 ms;
Confirmação de e-mail necessária — uma opção que envolve verificação por e-mail, se habilitada;
Usuário registrado ativo — define o atributo ativo como Verdadeiro para cada usuário registrado.
Grupos — permite criar e editar grupos de usuários.
AppMaster.io usa o Data Model Designer para trabalhar com modelos.
Usuário e Sessão de Usuário são dois modelos criados automaticamente no Data Model Designer. Os campos de modelo de dados pré-instalados não podem ser modificados ou excluídos, mas novos campos podem ser adicionados.
Para esses modelos, blocos de processos de negócios (BP) também são criados automaticamente.
BPs gerados automaticamente associados ao usuário e sessões de usuário
- Modelo de usuário
DB: Delete User — exclui o objeto User do banco de dados via ID;
DB: Update User — redefine todos os campos do bloco User-object passados para a entrada no banco de dados e os atualiza de acordo com os valores especificados (para alterar apenas os campos especificados, é utilizado o bloco DB: Patch User);
DB: Create User — armazena no banco de dados e retorna o objeto User fornecido (para construí-lo a partir dos campos fornecidos, use o bloco Make User);
DB: Soft Delete User — atualiza o atributo DeletedAt no objeto User e o deixa no banco de dados;
DB: Bulk Delete User — recebe como entrada um array de IDs (ids) de objetos User que serão excluídos do banco de dados;
failed_ids — uma matriz de IDs de usuário que não serão excluídas;
DB: Patch User — atualiza os campos especificados do objeto User no banco de dados (para redefinir todos os campos, use o bloco DB: Update User);
DB: Search User — localiza um ou mais objetos User no banco de dados com base em campos e os retorna;
DB: GetOne User — localiza o objeto User no banco de dados por seu ID e o retorna;
Expandir Usuário — retorna todos os campos do objeto Usuário selecionado;
Make User — cria um novo objeto User na memória a partir dos campos fornecidos e o retorna (para salvar o objeto criado no banco de dados, use o bloco DB: Create User);
- Modelo de sessão do usuário
DB: Delete User Session — remove o objeto User Session do banco de dados pelo ID passado;
DB: Update User Session — redefine todos os campos do objeto User Session passados para o bloco de entrada no banco de dados e os atualiza de acordo com os valores especificados (para alterar apenas os campos especificados, use DB: Patch User Session);
DB: Create User Session — armazena no banco de dados e retorna o determinado objeto User Session (para construí-lo a partir dos campos fornecidos, use o bloco Make User Session);
DB: Soft Delete User Session — atualiza o atributo DeletedAt do objeto User Session e o deixa no banco de dados;
DB: Bulk Delete User Session — aceita como entrada um conjunto de IDs de objetos de User Session que serão excluídos do banco de dados;
failed_ids — o array define o conjunto de IDs que não serão removidos;
DB: Patch User Session — atualiza os campos especificados do objeto User Session no banco de dados (para redefinir todos os campos, use o bloco DB: Update User Session);
DB: Search User Session — localiza um ou mais objetos User Session no banco de dados com base em campos e os retorna;
DB: GetOne User Session — localiza o objeto User Session no banco de dados por seu ID e o retorna;
Expandir Sessão do Usuário — retorna todos os campos do objeto Sessão do Usuário selecionado;
Make User Session — cria um novo objeto User Session na memória a partir dos campos fornecidos e o retorna (para salvar o objeto criado no banco de dados, use o bloco DB: Create User Session);
- Módulo de autenticação
Auth: Gerar Auth Token — gera um token de autorização (Auth Token) de um determinado comprimento;
Auth: Registration — registra um novo usuário;
Auth: Authorization — verifica se o Auth Token existe no sistema e retorna o usuário associado a ele;
Auth: Autenticação — verifica o login e a senha do usuário e retorna um token de autenticação;
Auth: Logout — aceita um token de autenticação e encerra a sessão do usuário atual;
Auth: Obter usuário atual — retorna os dados do usuário atual;
Auth: Remover usuário do grupo — remove um usuário do grupo especificado pelo seu ID (definido nas configurações do módulo Auth);
Auth: Adicionar usuário ao grupo — adiciona um usuário ao grupo de usuários especificado por seu ID (definido nas configurações do módulo Auth);
Auth: Hash Password — convertendo uma string de senha em um hash;
Auth: Restore Password — aceita o nome de usuário e a nova senha do usuário, redefinindo-o;
Auth: Change Password — substitui a senha do usuário atual por uma nova;
Auth: Probe Password — verificação de senha e correspondência de hash;
Os Endpoints do Auth Module e os modelos User e User Session são gerados automaticamente quando o projeto é criado.
Módulo de autenticação
Tipo de solicitação | Ponto final | PA conectado |
---|---|---|
/sair/ | Autenticação: Sair | |
/auth/ | Autenticação: autenticação | |
/registro/ | Autenticação: registro | |
/confirme/ | Autenticação: registro | |
/usuário/alterar senha | Autenticação: alterar senha | |
/user/restore-password/ | Autenticação: restaurar senha | |
/perfil de usuário/ | Autenticação: autorização |
Do utilizador
Tipo de solicitação | Ponto final | PA conectado |
---|---|---|
/ID do usuário/ | DB: Atualizar usuário | |
/ID do usuário/ | DB: Excluir usuário | |
/ID do usuário/ | DB: Usuário GetOne | |
/do utilizador/ | DB: usuário de pesquisa | |
/ID do usuário | DB: usuário do patch | |
/do utilizador/ | DB: Criar usuário |
Sessão do usuário
Tipo de solicitação | Ponto final | PA conectado |
---|---|---|
/user-session/:id/ | DB: Excluir sessão do usuário | |
/user-session/:id/ | DB: Sessão de Usuário GetOne | |
/sessão de usuário/ | DB: Pesquisar sessão do usuário | |
/user-session/:id/ | DB: Sessão do usuário do patch | |
/sessão de usuário/ | DB: Criar sessão de usuário | |
/user-session/:id/ | DB: Atualizar Sessão do Usuário |
O token de autenticação é usado como o token de sessão atual do usuário autorizado. Na aplicação web BP, é possível interagir com este token:
- Obter token de autenticação retorna a autenticação da sessão de usuário autenticada atual;
- Set Auth Token substitui o Auth Token da sessão atual do usuário autorizado;
- Remove Auth Token exclui Auth Token da sessão atual do usuário autorizado;
O exemplo mostra como obter o usuário atual.
Para fazer isso, vá para a guia Business logic e arraste o bloco Auth: Get current user.
Em seguida, é criado um Endpoint para o BP criado, que será usado para entrar em contato com o servidor para obter o objeto do usuário atual.
Selecione o grupo de usuários na seção Endpoints e crie um método de solicitação GET para o processo recém-criado para obter o usuário atual.
No BP do aplicativo da web, faça uma solicitação ao endpoint criado (solicitação do servidor GET /user_current) para obter o usuário atual.
Grupos e Permissões
Os grupos de usuários são criados nas configurações do módulo Auth. Para ir para as configurações do módulo, você precisa abrir a seção Módulos e clicar no cartão do módulo correspondente.
A guia Grupos contém uma lista de todos os grupos existentes. Clique em Adicionar um novo elemento para criar um novo grupo de usuários. Na nova janela modal, você pode personalizar o grupo, adicionar uma descrição, ícone, cor do ícone e do rótulo e tag.
pMaster" data-mce-src="https://appmaster.io/api/_files/SRiacHHyULYU6EqLSbrp6e/download/">
Para editar grupos de usuários existentes, você também precisa acessar as configurações do módulo Auth. Para isso, vá para a seção Módulos e clique no cartão do módulo correspondente. Em seguida, na guia Grupos, uma lista de grupos estará disponível, para editá-la você precisa clicar no ícone de configurações. Na nova janela modal, você pode personalizar o grupo, alterar sua descrição, ícone, cor do ícone e do rótulo e tag.
Para alterar os direitos de leitura/escrita de entradas no banco de dados para determinados grupos de usuários, é utilizado o Middleware do módulo Auth.
Na seção Endpoints, selecione o Endpoint cujas permissões de leitura/gravação você deseja alterar. Clique no botão de configurações no Endpoint desejado e vá para a aba Middleware na janela modal que se abre. Em seguida, clicando em Edit settings na linha com Token Auth Middleware, configure os direitos de acesso.
Acesso a páginas no aplicativo da web: Você precisa acessar o aplicativo da web e clicar no botão Configurações da página à qual deseja restringir o acesso.
No campo Mostrar para grupos, você deve selecionar uma lista de grupos de usuários que terão permissão para visualizar esta página. Por padrão, o campo está vazio e o acesso é permitido a todas as categorias de usuários.
Conclusão
O acesso aos dados por funções é uma maneira conveniente de organizar os fluxos de informações para grupos específicos de usuários. Com a plataforma sem código AppMaster.io , você pode testar esse recurso em uma avaliação.
Se você está impressionado com a funcionalidade, adquira nosso plano Professional, que inclui esse recurso, também exportação de arquivos binários, backups regulares, transferências de projetos e muito mais. Estamos esperando por você na plataforma AppMaster.io para implementar até mesmo seus projetos mais ousados.