AuthApi
Status do Projeto: :heavy_check_mark: Concluído
Tópicos
Descrição do projeto
Este projeto consiste em uma API de autenticação feita em C# e .Net que permite, de forma simples e direta, a criação e gerenciamento de contas de usuários, permitindo upload de fotos de perfil que serão salvas em um sistema de storage, alteração de senha, nome e etc.
Funcionalidades
- :heavy_check_mark: Login e autenticação
- :heavy_check_mark: Upload de fotos de perfil
- :heavy_check_mark: Mudar nome de usuário
- :heavy_check_mark: Mudar senha
- :heavy_check_mark: Mudar nome
- :heavy_check_mark: Deletar perfil
Pré-requisitos
Para executar esse projeto localmente é necessário ter o .Net instalado e um banco PostgreSql.
Banco de dados
Para usar o PostgreSql você pode usar o Docker
# baixe a imagem do PostgreSql
docker pull postgres
# execute a imagem
docker run --name <nome da imagem> -e POSTGRES_PASSWORD=admin -e POSTGRES_DB=users_db -p 5432:5432 -d postgres
Também é possível instalar o PostgreSql sem uma imagem docker pelo próprio site, basta entrar no site, selecionar seu sistema e seguir os passos.
Banco instalado e configurado execute o seguinte comando:
psql -U postgres -c "CREATE DATABASE users_db;"
Serviço de storage
O serviço de storage usado nesse projeto é fornecido pelo Supabase, usando o plano gratuito. Para mais informações acesse o site do Supabase.
Como executar a aplicação
Antes de executar a aplicação, clone o repositório:
git clone https://github.com/AnndreJunior/AuthApi.git
Acesse a pasta do projeto e execute o seguinte comando:
dotnet restore
Após isso será necessário setar o secret jwt e a string de conexão do banco de dados. Para isso será usado o user-secrets do .Net para maior segurança.
# para isso acesse o projeto de api
cd AuthApi.Api
# armazene o secret jwt
dotnet user-secrets set "jwt:secret" "aBcDeFgH1234567890IjKlMnOpQrStUvWxYz"
# armazene a string de conexão do banco
dotnet user-secrets set "database:connection" "Host=localhost;Database=users_db;Username=postgres;Password=admin"
# armazene a url do seu projeto Supabase
dotnet user-secrets set "supabase:url" "<link do projeto>"
# armazene sua key para usar o serviço do Supabase
dotnet user-secrets set "supabase:key" "<secret key do projeto>"
# após isso retorne ao root da solução
cd ..
Com tudo isso feito basta garantir que a ferramenta dotnet-ef está instalado. Para isso execute o seguinte comando:
dotnet ef
A saída deve ser isso:
_/\__
---==/ \\
___ ___ |. \|\
| __|| __| | ) \\\
| _| | _| \_/ | //|\\
|___||_| / \\\/\\
Entity Framework Core .NET Command-line Tools 2.1.3-rtm-32065
<Usage documentation follows, not shown.>
Caso seja algo diferente disso instale a ferramenta:
dotnet tool install --global dotnet-ef
# caso já esteja instalada garante que ela está atualizada
dotnet tool update --global dotnet-ef
Então basta executar a migration e rodar a aplicação:
# migration
dotnet ef database update --project AuthApi.Infra -s AuthApi.Api
# executar a aplicação
dotnet run --project AuthApi.Api
Como consumir a API
Para acessar os endpoints disponíveis e testar a api acesse a página do swagger da aplicação e teste o projeto.
Linguagens, dependências e libs utilizadas :books: