Git Product home page Git Product logo

authapi's Introduction

AuthApi

Status do Projeto: ✔️ 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

  • ✔️ Login e autenticação
  • ✔️ Upload de fotos de perfil
  • ✔️ Mudar nome de usuário
  • ✔️ Mudar senha
  • ✔️ Mudar nome
  • ✔️ 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 📚

authapi's People

Contributors

anndrejunior avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.