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

https://github.com/rickalves/reactnative-auth-app

React Native Auth App
https://github.com/rickalves/reactnative-auth-app

jwt-authentication mobile-app react react-native

Last synced: 3 months ago
JSON representation

React Native Auth App

Awesome Lists containing this project

README

        

# šŸš€ React Native Auth App

Este projeto é um exemplo de aplicativo de autenticação desenvolvido com **React Native** utilizando **Expo**. O aplicativo se conecta a uma API de autenticação (**Node.js, JWT e MongoDB**) para gerenciar **cadastro** e **login** de usuÔrios.

## ✨ Recursos

āœ” **Autenticação:** Telas para **cadastro** e **login** de usuĆ”rios.
šŸ“ **Navegação Baseada em Arquivos:** Uso do **Expo Router** com uma estrutura organizada na pasta `app` (incluindo `auth`).
šŸ” **Armazenamento Seguro:** Utilização do `expo-secure-store` para guardar tokens JWT.
šŸŒ **Integração com API:** RequisiƧƵes HTTP para uma **API de autenticação** que utiliza **Node.js, JWT e MongoDB**.

## šŸ“‚ Estrutura do Projeto

```plaintext
MyAuthApp/
ā”œā”€ā”€ app/ // Rotas definidas pelo Expo Router
│ ā”œā”€ā”€ _layout.tsx // Layout global (renderiza o Slot do Expo Router)
│ ā”œā”€ā”€ index.tsx // Rota raiz que redireciona para a tela de login
│ ā”œā”€ā”€ auth/ // Pasta para telas de autenticação
│ │ ā”œā”€ā”€ confirmation.tsx // Tela de confirmação de cadastro
│ │ ā”œā”€ā”€ emailSent.tsx // Tela de confirmação de envio de email
| | ā”œā”€ā”€ login.tsx // Tela de login
| | ā”œā”€ā”€ passwordRecovery.tsx // Tela de recuperação de senha
| | ā”œā”€ā”€ register.tsx // Tela de cadastro de usuĆ”rio
| | ā”œā”€ā”€ resetPassword.tsx // Tela de redefinição de senha
| | └── verifyCode.tsx // Tela de verificação de código
│ └── home.tsx // Tela protegida (Home)
ā”œā”€ā”€ assets/ // Arquivos estĆ”ticos (imagens, fontes, etc.)
ā”œā”€ā”€ package.json // DependĆŖncias e scripts do projeto
ā”œā”€ā”€ tsconfig.json // ConfiguraƧƵes do TypeScript
└── app.json // ConfiguraƧƵes do Expo
```

## šŸ”§ PrĆ©-requisitos

āœ… **Node.js** e **npm** ou **yarn** instalados.
āœ… **Expo CLI** instalado globalmente:
```bash
npm install -g expo-cli
```
āœ… Uma **API de autenticação** (Node.js, JWT, MongoDB) rodando ou URLs ajustadas conforme seu ambiente.

## šŸ“„ Instalação

1ļøāƒ£ **Clone o repositório:**
```bash
git clone https://github.com/seu-usuario/MyAuthApp.git
cd MyAuthApp
```

2ļøāƒ£ **Instale as dependĆŖncias:**
```bash
npm install
# ou
yarn install
```

3ļøāƒ£ **Configure as variĆ”veis de ambiente** (se necessĆ”rio) para ajustar as URLs da API e outras configuraƧƵes.

## ā–¶ļø Executando o Projeto

Para iniciar o projeto, execute:
```bash
expo start
```
Em seguida, abra o aplicativo no emulador ou em um dispositivo fĆ­sico utilizando o aplicativo **Expo Go**. šŸ“±

## šŸ” Navegação

A navegação é baseada na estrutura de arquivos com o **Expo Router**:

- **`/`** → Rota raiz (**index.tsx**) que redireciona automaticamente para **`/auth/login`**.
- **`/auth/*`** → šŸ”“ Telas de autenticação.
- **`/home`** → šŸ  Tela protegida, acessĆ­vel após a autenticação.

> ⚠ **Observação:** O redirecionamento na rota raiz é feito utilizando `router.replace('auth/login')` com um `setTimeout` para garantir que o layout esteja montado.

## šŸŽØ Personalização e ContribuiƧƵes

šŸ’” **Personalização:**
Ajuste os **estilos**, **validaƧƵes** e **integraƧƵes** conforme a necessidade do seu projeto.

šŸ¤ **ContribuiƧƵes:**
Contribuições são **bem-vindas**! Sinta-se à vontade para abrir **issues** ou enviar **pull requests** com melhorias e correções.

## šŸ“œ LicenƧa

Este projeto estĆ” licenciado sob a **[MIT License](LICENSE)**. šŸ“„

---