Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thales-eduardo/authentication-jwt

API de autenticação JWT + Upload de arquivos com TypeScript e TypeORM
https://github.com/thales-eduardo/authentication-jwt

babel jwt-authentication jwt-token mongodb nodejs postgresql redis typeorm typescript

Last synced: about 1 month ago
JSON representation

API de autenticação JWT + Upload de arquivos com TypeScript e TypeORM

Awesome Lists containing this project

README

        

# Cadastro de usuários

[Documentação](./docs/documt.md).

---

- **Cadastro:** Ao se cadastra o usuário recebera um email notificando o sucesso no cadastro.

- **Autenticação:** A autenticação foi feita com jwt.

- **Recuperar senha:** Token gerado pela aplicação, enviado em um link no email do usuário, esse link expira em 1h.

- **Buscar usuários:** Para isso o usuário deve estar autenticado na aplicação, e na primeira busca sera feita uma query no banco, nas demais caso não haja nenhuma alteração nos dados buscara no cache.

- **Atualizar perfil:** Para atualizar as informações do perfil o usuário deve estar autenticado.

- **Deletar perfil:** Para deletar perfil o usuário deve apenas estar autenticado.

- **Notificação com o mongodb:** Quando o usuário criar conta e trocar a senha, recebera uma notificação sobre.

- **E-mail**: Todos os e-mais entra em fila, diminuindo o tempo de resposta, caso a 1 tentativa falhe o bull tentara enviar mais três vezes.

---

# Tabelas

![tabelas](./docs/bd.png)

# Cadastro

![Cadastro](./docs/mailCadastro.png)

# Recuperar senha

![RecuperarSenha](./docs/mailRec.png)

# Token gerado para recuperar senha

![token](./docs/token.png)

---

# Docker

![Cadastro](./docs/docker.png)

# Build

```bash
yarn add -D babel-plugin-transform-typescript-metadata @babel/plugin-proposal-decorators @babel/plugin-proposal-class-properties
```

```bash
yarn add -D @babel/cli @babel/core @babel/node @babel/preset-env @babel/preset-typescript babel-plugin-module-resolver

```

```js
module.exports = {
presets: [
['@babel/preset-env', { targets: { node: 'current' } }],
'@babel/preset-typescript',
],
plugins: [
'babel-plugin-transform-typescript-metadata',
['@babel/plugin-proposal-decorators', { legacy: true }],
['@babel/plugin-proposal-class-properties', { loose: true }],
],
};
```

---

# Para iniciar o projeto

Para rodar o projeto tem que ter o [Docker](https://www.docker.com/) instalado na sua maquina.

> Para subir os contêineres.

```bash
docker-compose up -d
```

> Para deletar os contêineres.

```bash
docker-compose down
```