Skip to content

[JS, SUPABASE] Demonstração de acesso ao Supabase com JS

Notifications You must be signed in to change notification settings

rfdouro/demofrontsupabase

Repository files navigation

Projeto de exemplo para SUPABASE

Fontes

Para pesquisas mais aprofundadas:

Aplicação funcionando

Cadastro de Alunos e Tarefas

Dados de teste

Esse usuário apenas faz leitura e alterações. Existem regras (policies) no serviço SUPABASE implementadas que dão autorização apenas para um outro usuário fazer a inserção ou exclusão dos dados.

Modelo de dados utilizado

Modelo de dados

Para usuários avançados usando API REST

  • Para efetuar o login veja a documentação
    • POST
    • https://.supabase.co/auth/v1/token?grant_type=password
    • Body:
      • {"email": , "password": }
      • Exemplo de autenticação
      • efetuando login
  • Consulte a documentação de REST
    • Para fazer acesso pelo endpoint
      • https://.supabase.co/rest/v1/?
      • Exemplo de inserção de dados (observe que tem Bearer enviando o token obtido com a autenticação)
      • inserindo dados
      • Exemplo de seleção de dados
      • recuperando dados

Total de usuários

Para travar o total de usuários foi criada uma trigger direto no banco de dados usando o script:

--select count(*) from auth.users u ;

drop trigger if exists insere_usuario_check on auth.users;
drop function if exists auth.checa_total_users;

CREATE FUNCTION auth.checa_total_users()
  RETURNS trigger AS
$func$
BEGIN
   IF (select count(*) from auth.users u) >= 5 THEN
      RAISE EXCEPTION 'Número total de usuários atingido';
   END IF;
   RETURN NEW;
END
$func$  LANGUAGE plpgsql;


CREATE TRIGGER insere_usuario_check
BEFORE INSERT ON auth.users 
FOR EACH ROW EXECUTE PROCEDURE auth.checa_total_users();

Diante disso o número total de usuários possível é 5. Caso tente inserir é gerado um erro no banco

Erro ao inserir usuário

About

[JS, SUPABASE] Demonstração de acesso ao Supabase com JS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published