Skip to content

kom1ssar/rest-api-auth-mysql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Очень старое, я бы много тут изменил начиная с архитектурных решений, заканчивая всем остальным)

rest-api-auth

Express, MySQL, Jwt, Bcryptjs

.env Config

 SALT='6' //соль для хеширования праоля
 SECRET_JWT='QQWEQASDvD' //секретный jwt токен
 DATABASE_MYSQL='mysql://admin:5Gq5BDuYspP@localhost:3306/rest-api-users' // ''mysql://<login>:<password>@<localhost>:<port>/<name>''

USER_SCHEMA

model UserModel{
   id Int @id @default(autoincrement())
   email String  @unique
   firstName String
   lastName String @default("NaN")
   photo String @default("NaN")
   password String
   gender String @default("NaN")
   createdOn DateTime @default(now())
}
  1. Регистрация.

    Регистрация происходит по роуту:

    user/register

    METHOD: POST

    Middleware: | ValidateMiddleware: UserRegisterDto |

    Роут принимает обязательные поля Json формата:

    {"firstName":"name","email":"[email protected]","password":"myPassword"}

    При успешной авторизации роут возвращает Json имеющий следующие поля:

    {"msg": {"email": "[email protected]","id": 1}}
  2. Авторизация.

    Авторизация по роуту:

    user/login

    METHOD: POST

    Middleware: | ValidateMiddleware: UserLoginDto |

    Роут принимает обязательные поля Json формата:

    {"email":"[email protected]","password":"myPassword"}

    При успешной авторизации роут возвращает Json имеющий следующие поля:

    {"msg": {"jwt": "JWT_TOKEN"}}
  3. Получение профилей.

    Получение профилей по роуту:

    user/profiles

    METHOD: GET

    Middleware: | AuthGuard |

    Роут принимает обязательные поля Headers формата:

    Authorization: Bearer JWT_TOKEN
    

    При успешной валидации JSON_TOKEN роут возвращает все профили в Json имеющий следующие поля:

    {
       "msg": {
           "users": [
             {
                     "id": 2,
                 "email": "[email protected]",
                 "firstName": "Name",
                 "lastName": "NaN",
                 "photo": "NaN",
                 "password": "HashPassword",
                 "gender": "NaN",
                 "createdOn": "Register DateTime"
             },...

    Также данный роут принимает необязательное поле userId

    user/profiles/:id

    Возвращает профиль пользователя по Id

  4. Редактирование профиля.

    Редактирование происходит по роуту:

    user/edit

    METHOD: PUT

    Middleware: | AuthGuard | ValidateMiddleware: UserEditDto |

    Роут принимает обязательные поля Headers формата:

    Authorization: Bearer JWT_TOKEN
    

    Редактирование происходит по полю email, который берется из JWT_TOKEN

    Роут принимает необязательные поля Json формата:

    {
      "firstName":"Name",
      "lastName":"lastName",
      "gender": "GENDER"  // 'femali' или 'male'
      "email":"email"
    }

    Необязательные поле file с максимальным размером 10мб формата:

    Name: img. FILE_TYPE: .PNG, .JPG, .GIF, .JPEG

    Сохраняет файл в папку /public/photo с уникальным uuid который записывается в БД. Если у данного user уже присутствует фотография,то файл и данные в БД будут перезаписаны на новые.

    Метод возвращает Json обновленного профиля

  5. Получение Статики.

    Статические файлы из папки /public/photo/ можно получить по пути:

    domainName:port/fileName

About

rest-api-auth-mysql

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published