Sensacional ver a Rocketseat trazendo este tipo de conteúdo! Legal mostrar para os devs que este tipo de solução não é tão complexa de criar. Estou trazendo uma série ensinando a galera criar um Micro-SaaS do zero, pensando exatamente nisso, dar esta visão de empreendedorismo para os devs.
Mesmo já tendo bastante experiência na área, estou acompanhando a série e indico muito. Do nível iniciante ao avançado você consegue pegar dicas valiosas com esta série. Indico!
Eu aprendi a fazer as roles na mão conforme fosse criando a aplicação. Criava uma tabela permissões com cada permissão sendo um booleano e relacionado com o ID do usuário. Então quando carregava o contexto subia essas permissões sem usar soluções como o CASL. Achei intererssante essas ferramentas, quero testar logo! Obrigado por compartilhar.
Esse jeito não está errado, ainda mais se forem permissões dinâmicas onde um Adm da acessos a outros usuários. Como por exemplo, no TikTok vc inclui um moderador para gerenciar os comentários de suas lives.
Fizemos um assim também, mas usamos um back só pra controlar permissões, users e assinantes. E depois cada cliente tem uma api dedicada para o resto do projeto.
Massa demais rocket, porem eu particulamente nao gosto de deixa a regra de negocio do meu aplicativo na maos de biblioteca de terceiro, especialmente nesse caso de permissoes, gosto de criar isso tudo na mao e deixar em um dominio por exemplo.
Alguém sabe como ele implementou isso no nextjs aquele can ali, a forma que eu fiz pegando da session o user.role sempre retorna false, mas no backend retorna true
O quanto isso difere quando os dois projetos, front e back, são desacoplados sem a possibilidade de publicar um package igual a sua no npm? Só duplicar código mesmo? Aqui na primeira renderização pós autenticação eu busco todas as permissões e ela fica em memória (portanto todo reload vai buscar novamente, pq realmente guardar no localstorage ou cookies seria uma má ideia), e faço um can\cannot baseado na resposta ao longo do front. Eu ganhei tempo com isso mas ainda to procurando um metodo definitivo pra lidar com as permissões assim, considerei casl mas seria um "disperdicio" só usar no front pq o back, em laravel, ja tem seu sistema de permissão integrado...
Prefiro trabalhar com RLS no Postgres. O trabalho é o mesmo, mas fica muito mais eficiente e nao precisamos reimplementar o controle de acesso em todos os clientes
Caramba curto muito os videos do Diego, mas vejo inventar a roda no ambiente web, Laravel + jetstream ta pronto... muito simples e elegante, misturar frontend com backend da nisso. ficou muito confuso e muito grande a ideia dos algoritimos é simplificar a vida... fiquei perdido
Pois é, o mais engraçado é ouvir: "php morreu"... Os caras do JS penteia demais login, autenticação, pesquisa em tabela, etc... Mil formas de fazer coisas que são triviais demais. Laravel veio pra simplificar isso, ajudar na DX e entregar bons produtos de qualidade.
Uma opinião minha, não sou dono da verdade, mas acho que o problema das aulas de vocês é usar muitas bibliotecas. Isso, em um projeto "real" de uma empresa ao longo do tempo, não é muito saudável, pois muitas dessas bibliotecas podem cair em desuso ou ter incompatibilidades com versões futuras do Node, React, Next, etc., e com isso a manutenção vai ser um caos.
Concordo em parte com a sua afirmação, mas se existe a preocupação de uma biblioteca deixar de ser uma alternativa viável a abstração desta no código tornará muito mais simples a alteração para uma outra. Arquitetura limpa traz inúmeros benefícios para o desenvolvimento esse é só um deles.
Na tecnologia tudo está sujeito a cair em desuso ao longo do tempo. Por isso temos que arquiteturar bem o projeto, para que seja menos trabalhoso possível substituir algo em desuso. Um bom exemplo é a Clean Architecture, como foi mencionada a cima.
Em projetos Node eu vejo muito o pessoal usando libs, porém um Dev experiente consegue separar às responsabilidades usado arquitetura limpa dê mode que e possível apenas substituir a lib sem ter que refatorar todo o projeto.
Sim, o conceito de arquitetura limpa ajuda muito na hora de trocar uma lib. Mas o ponto que levantei foi tentar fazer uma lib funcionar novamente caso quebre. E é claro que libs com várias estrelas a comunidade está sempre trabalhando, mas o problema é que muitos iniciantes instalam libs que não sofrem manutenção a anos! Eu mesmo já barrei vários PR por esse motivo.
Ola, eu estou pensando em me inscrever na Rocket ... Você tem alguma informação sobre os projetos que eles ensinam pros alunos? Eles não mostram a parte de autenticação/autorização nos cursos deles?
Sensacional ver a Rocketseat trazendo este tipo de conteúdo! Legal mostrar para os devs que este tipo de solução não é tão complexa de criar.
Estou trazendo uma série ensinando a galera criar um Micro-SaaS do zero, pensando exatamente nisso, dar esta visão de empreendedorismo para os devs.
Conteúdo tooop demais do @vibedev.official estou acompanhando
Está muito boa inclusive 👏🏼
Eai vibedev, estou acompanhando! criar mais conteúdos semelhantes.
Mesmo já tendo bastante experiência na área, estou acompanhando a série e indico muito. Do nível iniciante ao avançado você consegue pegar dicas valiosas com esta série. Indico!
Ótima serie por sinal muito pratica e direto ao ponto
"quando eu crescer" quero ser igual o Diego. O cara é muito fodaa!
vamos ser sim mano
Eu aprendi a fazer as roles na mão conforme fosse criando a aplicação. Criava uma tabela permissões com cada permissão sendo um booleano e relacionado com o ID do usuário. Então quando carregava o contexto subia essas permissões sem usar soluções como o CASL. Achei intererssante essas ferramentas, quero testar logo! Obrigado por compartilhar.
Esse jeito não está errado, ainda mais se forem permissões dinâmicas onde um Adm da acessos a outros usuários. Como por exemplo, no TikTok vc inclui um moderador para gerenciar os comentários de suas lives.
Diego, você me deixa inspirado para fazer projetos e cada vez me superar. Tmj 🤩
Caraca, mt maneiro que abordou autenticação!
vai liberar o codigo? please....
Esse uso do zod está sensacional! ❤
Qual seria a maior desvantagem em ter um monorepo com front e api? Monorepo funciona em projetos grandes ou é melhor para mvps?
Fizemos um assim também, mas usamos um back só pra controlar permissões, users e assinantes. E depois cada cliente tem uma api dedicada para o resto do projeto.
Como vocês realizaram a conexão entre esse back de permissões e as APIs de cada cliente levando os recursos que podem ser acessados?
@@ojoaoalexandre Esse back se conecta num Mongo onde temos todos os clientes, cada um com uma instância do nosso erp
O tema usado é o: Vesper++
É sobre isso
O CASL poderá ser usado no Nestjs?
diego quando sai um video de você mostrando como fazer o setup do turbo repo
Boa dica Diego. Só uma dúvida, como você faria o deploy desse projeto tendo em vista que vão utilizar a lib de auth?
Massa demais rocket, porem eu particulamente nao gosto de deixa a regra de negocio do meu aplicativo na maos de biblioteca de terceiro, especialmente nesse caso de permissoes, gosto de criar isso tudo na mao e deixar em um dominio por exemplo.
Muito legal, é possivel fazer isso com o Dotnet junto?
Ja usei essa lib, muito boa :)
Esse assunto eh muito massa e nao tem tanto conteudo a fundo, somente algo mais raso.
Alguém sabe como ele implementou isso no nextjs aquele can ali, a forma que eu fiz pegando da session o user.role sempre retorna false, mas no backend retorna true
Esse projeto vai sair na trilha ignite da rocketseat
Que legal! Esse projeto ta previsto para chegar quando la no ignite?
Essas aulas se refere a qual módulo? Formacao full stack?
Adorei essa explicaçao, mas eu queria saber se tem alguma maneira de fazer isso de maneira facil, como tu fez, no nestjs com graphql??
O que eh aquela sintaxe dentro do objeto permissions?
Excelente conteúdo
vai ter conteudo de autenticacao tipo esse no ignite?
Porque escolheu esse formato de permissões ao invés de Grupos custom p/ cada seção do saas?
quando que vai sair mais ou menos esse projeto na rocket?
Olá Diego, este projeto ainda terá mais videos na plataforma da Rocket?
O quanto isso difere quando os dois projetos, front e back, são desacoplados sem a possibilidade de publicar um package igual a sua no npm? Só duplicar código mesmo? Aqui na primeira renderização pós autenticação eu busco todas as permissões e ela fica em memória (portanto todo reload vai buscar novamente, pq realmente guardar no localstorage ou cookies seria uma má ideia), e faço um can\cannot baseado na resposta ao longo do front. Eu ganhei tempo com isso mas ainda to procurando um metodo definitivo pra lidar com as permissões assim, considerei casl mas seria um "disperdicio" só usar no front pq o back, em laravel, ja tem seu sistema de permissão integrado...
Se eu for um aluno da Rocketseat eu teria acesso a todos os videos desse projeto?
Como você fez essa autenticação com o fastify?
Como posso ter acesso só ao curso?
Tem como desenvolver um app com React + Material3?
Onde consigo assistir essas lives?
Estará no Ignate (Reacs e Node) ?
Prefiro trabalhar com RLS no Postgres. O trabalho é o mesmo, mas fica muito mais eficiente e nao precisamos reimplementar o controle de acesso em todos os clientes
Como consigo o curso da rocket?
Passa a corzinha nova aew diegão
esse projeto vai sair na trilha de react ?
Irá liberar o repositório?
Eu tô ficando louco ou esse vídeo está sendo postado pela segunda vez? Tenho certeza q já assisti esse vídeo essa semana kk
Casl… utilizo em um projeto do meu trabalho. Mas o framework e Vuejs
Vai usar Supabase?
Alguem sabe qual teclado ele usa?
Mostrou nada com nada kkk
Acho que usar o termo Guest ou Unknown em vez de Anonymous seria melhor.
ficou confuso de entender, acabou parecendo magica mesmo...
Caramba curto muito os videos do Diego, mas vejo inventar a roda no ambiente web, Laravel + jetstream ta pronto... muito simples e elegante, misturar frontend com backend da nisso. ficou muito confuso e muito grande a ideia dos algoritimos é simplificar a vida... fiquei perdido
Pois é, o mais engraçado é ouvir: "php morreu"... Os caras do JS penteia demais login, autenticação, pesquisa em tabela, etc... Mil formas de fazer coisas que são triviais demais. Laravel veio pra simplificar isso, ajudar na DX e entregar bons produtos de qualidade.
Libera o fonteeeeee
Tem codigo...
O código é bom, mas tem uma complexa para entender muito grande…, quem pegasse legado desse codigo ia demorar um pouco ate entender tudo
Uma opinião minha, não sou dono da verdade, mas acho que o problema das aulas de vocês é usar muitas bibliotecas. Isso, em um projeto "real" de uma empresa ao longo do tempo, não é muito saudável, pois muitas dessas bibliotecas podem cair em desuso ou ter incompatibilidades com versões futuras do Node, React, Next, etc., e com isso a manutenção vai ser um caos.
Concordo em parte com a sua afirmação, mas se existe a preocupação de uma biblioteca deixar de ser uma alternativa viável a abstração desta no código tornará muito mais simples a alteração para uma outra.
Arquitetura limpa traz inúmeros benefícios para o desenvolvimento esse é só um deles.
Na tecnologia tudo está sujeito a cair em desuso ao longo do tempo. Por isso temos que arquiteturar bem o projeto, para que seja menos trabalhoso possível substituir algo em desuso. Um bom exemplo é a Clean Architecture, como foi mencionada a cima.
Em projetos Node eu vejo muito o pessoal usando libs, porém um Dev experiente consegue separar às responsabilidades usado arquitetura limpa dê mode que e possível apenas substituir a lib sem ter que refatorar todo o projeto.
Sim, o conceito de arquitetura limpa ajuda muito na hora de trocar uma lib. Mas o ponto que levantei foi tentar fazer uma lib funcionar novamente caso quebre. E é claro que libs com várias estrelas a comunidade está sempre trabalhando, mas o problema é que muitos iniciantes instalam libs que não sofrem manutenção a anos! Eu mesmo já barrei vários PR por esse motivo.
não tem nem o link do codigo kkkk
duvido ter um projeto desse nivel na rocket pros alunos
Ola, eu estou pensando em me inscrever na Rocket ... Você tem alguma informação sobre os projetos que eles ensinam pros alunos? Eles não mostram a parte de autenticação/autorização nos cursos deles?
Como posso ter acesso só ao curso?