가장 간단한 노드 사용자 인증 시스템으로 가는 길js

JavaScript는 읽기와 쓰기가 쉽지만 가끔은 사용자 인증과 같은 어려움을 겪을 수 있습니다.
사용자 인증에 대한 심도 있는 논의를 시작하기 전에 이번 주말의 결과를 살펴보겠습니다.

소금 늪 / 네모난 배


NestJS에서 가장 간단한 인증 시스템,TypeORM,NEXT.js(v9.3)와 재료 사용자 인터페이스(v4).



NestJS, TypeORM, NEXT.js (v9)Material UI (v4) 위에서 가장 간단한 신분 검증 시스템.

특징.

  • 플랫폼 간 - Mac, Linux 및 Windows
  • 솔리드 데이터베이스와 동기화 - 에 의해 전원 공급
  • 서버측 렌더링 - 에 의해 전원 공급
  • API 서버 - TypeORM에 전원 공급
  • 인증 - 에 의해 전원 공급

  • NEXT.js 설계
  • 테크니컬

  • 개발자가 경험한 핫 리로드:)

  • NestJS - TS 어플리케이션을 컴파일하고 파일이 수정될 때 다시 시작합니다
  • .

  • Passport - React 프레임워크

  • Material UI - 확장 가능한 Javascript
  • 데이터베이스

  • ts-node-dev - 세계에서 가장 선진적인 소스 관계 데이터베이스
  • ORM(객체 관계 매핑)

  • NEXT.js - TypeScript 및 JavaScript용 ORM(ES7, ES6, ES5)
  • 서버

  • TypeScript - 점진적 노드입니다.효율적이고 신뢰할 수 있으며 확장 가능한 서버 사이드 응용 프로그램을 구축하는 js 프레임워크
  • 내부 사용PostgreSQL - 신속하고 편견이 없고 최소한의 노드 웹 프레임워크.js

  • TypeORM - React 프레임워크
  • 환경 변수

  • NestJS - 환경 변수를 로드합니다.환경...
  • Express
    예, 이것은 슈퍼 듀퍼의 간단한 사용자 인증 시스템입니다.)
    다른 한편, 다음과 같은 기술을 사용합니다.
  • 개발자가 경험한 핫 리로드:)

  • NEXT.js - 노드의 변경 사항을 모니터링합니다.js 응용 프로그램 및 서버 자동 재부팅

  • dotenv - React 프레임워크

  • View on GitHub - 확장 가능한 Javascript
  • 데이터베이스

  • nodemon - 세계에서 가장 선진적인 소스 관계 데이터베이스
  • ORM(객체 관계 매핑)

  • Next.js - TypeScript 및 JavaScript용 ORM(ES7, ES6, ES5)
  • 서버

  • TypeScript - 점진적 노드입니다.효율적이고 신뢰할 수 있으며 확장 가능한 서버 사이드 응용 프로그램을 구축하는 js 프레임워크
  • 내부 사용PostgreSQL - 신속하고 편견이 없고 최소한의 노드 웹 프레임워크.js

  • TypeORM - React 프레임워크
  • 환경 변수

  • nest - 환경 변수를 로드합니다.nodejs 프로젝트 환경 총감독
  • 사용자 인증

  • Express - 노드에 대해 간단하고 눈에 띄지 않는 신분 검증을 실시한다.js
  • 사용자 인터페이스 프레임워크

  • Next.js - 사용자 인터페이스를 구축하는 JavaScript 라이브러리

  • dotenv - React 프레임워크

  • Passport - 구글 소재 디자인을 실현하는 React 부품.
  • 이렇게 많은 도서관이 있죠?가장 간단한 신분 검증?
    그래.
    심층 분석:

    리액션 취미 데이터베이스


    Next.js 덕분에 우리는 데이터베이스와 실체를 동기화할 수 있다.
    다음은 user.entity.ts입니다.
    import {
      Entity,
      Column,
      PrimaryGeneratedColumn
    } from 'typeorm';
    
    @Entity()
    export class User {
      @PrimaryGeneratedColumn()
      id: number;
    
      @Column('varchar')
      name: string;
    
      @Column('varchar', {
        unique: true
      })
      email: string;
    
      @Column('varchar')
      password: string;  
    }
    
    TypeForm은 자동으로 인테리어 정보로부터 데이터베이스를 동기화합니다.
    다시 말하면 데이터베이스는 저장된 후에 자동으로 변경된다@Entity().

    재료 인터페이스 재미있는 인코딩


    사용 하면 우리는 현대 자바스크립트(TypeScript)를 사용할 수 있고 사용TypeORM하면 코드 스마트와 같은 가장 큰 장점을 얻을 수 있다.
    다음은 샘플user.entity.ts입니다.
    import {
      Controller,
      Get
    } from '@nestjs/common';
    import { User } from './user.entity';
    import { UsersService } from './users.service';
    
    @Controller('api/users')
    export class UsersController {
      constructor(private readonly service: UsersService) {}
    
      @Get()
      async findAll(@Query() query): Promise<User[]> {
        return await this.service.findAll();
      }
    }
    
    구조 함수 주입을 통해 users.controller.ts 사용자는 어떻게 사용하는지users.controller.ts에 관심이 없습니다.findAll()는 다음과 같습니다.
    import { Injectable } from '@nestjs/common';
    import { InjectRepository } from '@nestjs/typeorm';
    import { Repository } from 'typeorm';
    import { User } from './user.entity';
    
    @Injectable()
    export class UsersService {
      constructor(@InjectRepository(User) private readonly repository: Repository<User>) {}
    
      async findAll(): Promise<User[]> {
        return await this.repository.find();
      }
    }
    
    믿을 수 있겠어?
    nest가 실현을 숨겼기 때문에 우리는 SQL 스크립트를 인코딩하지 않은 상태에서 users.service.ts 사용자를 사용할 수 있다.(이른바 저장소 모드)

    VSCode 취미 SEO(서버측 렌더링)


    TypeORM 서버측 렌더링을 고려하지 않고 작성할 수 있습니다findAll().
    export default () => 'Hello SSR!'; // this is a React.Component :)
    

    둥지 어떻게 시도


    먼저 설치해야 합니다Next.js.
    Mac 및 를 사용하는 경우 설치가 간단합니다.
    # install database (postgresql)
    $ brew install postgresql
    
    # if you want to start postgresql in startup, try do this
    $ brew services start postgresql
    
    # create user "arkuser" with password "arkark"
    $ createuser -P arkuser
    
    # create database "arkdb" owened by "arkuser"
    $ createdb arkdb -O arkuser
    
    이렇게!
    그런 다음 ARK처럼 사용합니다.
    # clone repository
    $ git clone https://github.com/saltyshiomix/ark.git
    
    # install dependencies
    $ cd ark
    $ yarn
    
    # development mode
    # please make sure to create the `.env` file!
    $ yarn dev
    
    # production mode
    # please make sure to create the `.next/.env` file!
    $ yarn build
    $ yarn start
    
    page/index.tsx 파일은 다음과 같습니다.
    # DB
    DB_TYPE=postgres
    DB_HOST=localhost
    DB_PORT=5432
    DB_USERNAME=arkuser
    DB_PASSWORD=arkark
    DB_DATABASE=arkdb
    DB_SYNCHRONIZE=true
    
    # App
    HOST=localhost
    PORT=4000
    SESSION_SECRET=ark
    
    보실 수 있습니다.env:
    PostgreSQL
    계정을 생성합니다.
    Homebrew
    당신은 이미 로그인하였습니다!
    Next.js

    결론


    내가 만든 저장소는 사용자 인증 시스템을 어떻게 쉽게 실현할 수 있는지 보여주기 위해서이다.
    그래서 PRS가 인기!
    (예를 들어'사회적 로그인 실현','JSON API 실현'등)
    당신이 도와줬으면 좋겠어요:)

    좋은 웹페이지 즐겨찾기