Link para a aplicação: Crud & Auth
O projeto consiste de dois microserviços: autenticação e CRUD. Todos os endpoints do CRUD requerem autenticação, que pode ser feita por usuário/senha ou utilizando o serviço de OAuth do Google. Foi utilizado PassportJS para lidar com a parte de autenticação.
As atividades funcionalidades totalmente implementadas estão marcadas no template com um [x]
- Clone esse repositório para a sua base local
- Instale as dependências necessárias:
node install
- Altere as chaves de autenticação e a url de callback do Google OAuth presentes em ./configo/keys.js
module.exports = {
MONGO_URI: '<Your Mongo URI>',
google: {
CLIENT_ID: '<Your Google API client Id>',
CLIENT_SECRET: '<Your Google API client secret>',
CALLBACK_URL: 'https://<Your URL>/usuarios/login/google/redirecionar'
}
}
- Rode a aplicação em modo de desenvolvimento
npm run dev
- Clone esse repositório para a sua base local
- Instale as dependências necessárias:
node install
- Altere as chaves de autenticação e a url de callback do Google OAuth presentes em ./configo/keys.js
module.exports = {
MONGO_URI: '<Mongo production URI>',
google: {
CLIENT_ID: '<Production Google API client Id>',
CLIENT_SECRET: '<Production Google API client secret>',
CALLBACK_URL: 'https://<Production URL>/usuarios/login/google/redirecionar'
}
}
- Caso esteja usando Git para versionar o código, efetue o commit da alteração
git commit -am "Configuração de produção"
- Adicione o repositório de produção
git remote add <nome do repositorio de produção> <endereço do repositório de produção>
- Efetue o push para o repositório de produção
git push
- Microserviço de autenticação (AUTHENTICATION)
- Microserviço que use precise usar a autenticação (MOCK).
-
O microserviço AUTHENTICATION deve ter a opção de 2-factor authentication por pelo menos 2 canais (Ex: e-mail, sms, aplicativo)
-
O microserviço MOCK deve ter implementado um CRUD (de qualquer coisa)
-
Todos os endpoints do MOCK devem ser autenticados
-
Deve estar no padrão REST
-
Deve estar rodando em pelo menos 2 ambientes (Local Development e Production)
-
Deve ter a documentação de como rodar localmente e de como rodar os ambientes em production
-
Todos os serviços devem funcionar com Docker
-
Deve estar na mesma codebase
-
Deve funcionar dentro da AWS
-
Deve ter testes unitários
-
Deve ter CI/CD
-
Desejável ter a documentação da API em SWAGGER