티스토리 뷰

nestjs에서 

회원가입, 로그인/아웃, 회원수정, 회원탈퇴 기능을 구현해보았다.

 

일단 nestjs에서의 

Data flow는 아래의 사진과 같이 진행되는듯 하다,,,

 

user모듈, 컨트롤러, 서비스를 만들고 각각 기능을 구현했다.

 

test-server 폴더 내 소스코드를 작성하고 있는 중이며 폴더구조는 아래와 같이 진행중이다.

package.json의 "scripts"에서 "start"를 하면 nestjs Application이 구동된다.

package.json이 있는 폴더에서 "npm run start"를 입력.

 

nestjs에서 시작점은 main.ts이다.

 

1. main.ts bootstrap() 함수를 실행하면 NestFactory를 거쳐 AppModule을 실행한다.

(cookieParser는 생성된 token을 파싱하기위해 사용되는 library이다.)

2. app.module.ts파일의 내용이다.

@Module내 UserModule을 실행한다.

아직 AppControllers와 AppService 아래에는 아무내용이 없다.

3. user.module.ts 파일의 내용이다.

UserService와 UserController를 실행 할 것이며,

imports의 내용은 JsonWebToken을 활용하기 위한 라이브러리인 JwtModule을 import하였다. 

 

4. 각각 user.controller.ts 파일과 user.servise.ts파일의 내용이다.

 

controller에서 기능(Get, Post, Patch, Delete 등)을 명시하고 service에 작성된 기능을 controller에서 호출하는 방식으로 진행된다.

 

 

 - 회원가입 기능(bcrypt(단방향 암호화 library)로 password를 암호화 하여 DB에 저장)

 

 - 로그인 기능(token생성)

 

 - 로그아웃 기능(token삭제, Guard)

 

 

 - 회원정보 수정 기능(Guard)

 

 - 회원 삭제 기능

 

 - 유저 확인(token을 이용하여 접근 allow/deny)

 

 - 그리고 Mysql에 Query를 날려서 실행하는 function이다.

 

5. etc ...

 - user.guard.ts파일의 내용이다.

 - 위에서 @UseGuards(UserGuard)가 있는데 이는 토큰을 확인하여 토큰이 없을 경우(로그인을 하지않았거나, 토큰이 만료되었을 경우) 접근을 제한한다.

 

Postman을 이용하여 json형태로 data를 전송하고 return받으며 테스트하며 구현해보았다.

좀더 깔끔한 소스코드를 위해 많은 고민과 수정을 반복하며 진행 중이다.

 

앞으로 할일은 client단에서 화면구성 및 server로 데이터를 전송하는 기능을 구현해야 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함