wvoliveira / corgi Goto Github PK
View Code? Open in Web Editor NEWMais um encurtador de URL.
Mais um encurtador de URL.
Adicionar quantidade de redirecionamentos no banco de dados SQL mesmo.
Dados base a serem coletados e incluídos no banco:
Pois esse pacote é o endpoint/serviço que irá receber a URL pequena e direcionar para o endereço que está na base
Exemplo: neste momento não há validação se o e-mail é realmente um e-mail válido.
Validações:
Vou tentar adicionar isso na rota "/api/v1/auth/token/refresh"
Requisitos mínimos:
Exemplos de bibliotecas:
Ainda estou estudando, mas pelo que verifiquei cada biblioteca tem suas limitações ou seus padrões..
Talvez tentarei adaptar com o Gin framework.
Outra referencia bem interessante é do app Nakama: https://github.com/heroiclabs/nakama/blob/master/server/api_authenticate.go#L553
Utilizando o db-ip.com e feito o download por aqui: https://db-ip.com/
Isso é necessário pois vários logs e rastreabilidade serão relacionadas à esse "hash". Exemplo: contagem de redirecionamentos do link elga.io/123ex
Deixar que o usuário crie um novo e delete o antigo.
Estou utilizando o Cockroach: https://www.cockroachlabs.com/docs/stable/
Hoje está hardcoded de 30 minutos, mas seria interessante deixar maleavel por arquivo de configuração.
Issue para logar alguns aspectos do código, tais como:
Autenticação está OK, porém agora é necessário adicionar o autorizador para determinados paths e métodos.
Casbin: https://github.com/casbin/casbin
Exemplos: https://github.com/casbin/casbin/tree/master/examples
Tutorial legal: https://www.zupzup.org/casbin-http-role-auth/
Hoje invalidou meu token pois expirou. Validar essa atualização automática e adicionar um teste básico.
Hoje não está redirecionando, só mostrando os valores de Access Token, Refresh Token e tempo de expiração.
Adicionar as seguintes informações:
Hoje ele está como timestamp. Exemplo:
{"level":"info","ts":1639066341.2216156}
Exemplo:
As rotas de autenticação por senha pode ficar na própria camada de transporte do pacote password:
r.POST("/auth/password/login", s.HTTPLogin)
r.POST("/auth/password/register", s.HTTPRegister)
E no main.go é só chamar o método que registra essas rotas.
Com isso ficará mais genérico, podendo utilizar esssas informações em qualquer parte do código.
Como o access_token e o ID do refresh_token é incluído nos cookies, quando o usuário enviar uma requisição para o server, devo verificar se o Access Token irá expirar em breve e realizar a atualização caso seja necessário.
Irei testar o módulo "cron" feita pelo robfig: https://github.com/robfig/cron
A ideia é simples: criar uma função para verificar se existem tokens expirados e deletar em seguida.
Poderia deixar na rotina do próprio SQL? Sim, mas eu teria que pensar em como fazer para cada solução de banco de dados, como MySQL, PostgreSQL, CockroachDB, etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.