본문 바로가기

nestJS

NestJS 개발 시작하기(로그인 인증 개발); 7. 암호화와 해쉬 함수 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 6. 암호화와 해쉬 함수유럽에서 2016년 5월에 GDPR (General Data Protection Regulation)이 발효되면서 많은 나라에서 개인정보보호에 대한 규정을 만들고 있다. 우리나라도 2021년 2월부터는 개인정보보 보호법에 따라 특정 정보, 또는 정보의 조합이 특정 개인을 지칭할 수 있는 경우 민감정보로 규정하고 이를 보호하는 규정을 적용하고 있다. 일반적으로 회사서비스는 어느 정도 개인 정보를 담고 있을 수밖에 없어.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 6. jwt 인증 (1) NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 6. @nestjs/jwta. JWT token 생성이제, JWT와 OAuth를 사용해서 인증하는 프로그램을 만들어 보자. 앞에서 본 OAuth인증절차에서 가장 먼저 해야 할 일은 id, password를 사용해서 로그인하면 Token을 생성하는 일이다. 먼저, JWT Token 패키지를  @nestjs/jwt 패키지를 설치한다. pnpm install @nestjs/jwt 설치된 @nestjs@jwt 패키지를 사용해서 OAuth를 구현하.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 5. Session, JWT, OAuth 차이 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 6. Session, JWT (JSON Web Token), OAutha. Session앞에서는 사용자가 email과 password를 사용해서 로그인을 하면 서비스의 isLogedin에 정보를 저장했다. account.service.ts의 마지막에 아래와 같이 로그인 상태를 확인하는 함수를 추가하고 ... async isLogedIn(email: string): Promise { return this.isLogedin[.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 4. TypeORM으로 DB연결 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 5. TypeORM앞에서 정의한 Account정보를 DB로 저장하기 위해, 가장 많이 사용하고 있는 DB인 MySQL을 사용하기로 했다. PostgreSQL이나, Node.js와 같이 사용하기 쉬운 MongoDB도 사용하는 방법은 많이 다르지 않다. MySQL과 연결하고 데이터를 저장하기 위해서는 mysql패키지를 설치하고 DB를 직접 연결하는 방법도 있지만, NestJS와 가장 많이 사용하는 방법은 TypeORM을 사용하는 방법이다. 노.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 3. API 개발과 Swagger NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 4. Auth API앞에서 이번 Auth API의 개발 요구사항을 Auth는 signup, signin, signout의 3가지 API를 제공,개인 정보는 email을 userid로 동일하게 사용하고, 사용자 명, password를 제공하는 것으로 잡았으니, 이를 기준으로 하는 간단한 API를 만들어 보자.a. SwaggerAPI 개발에는 OpenAPI, Swagger패키지를 사용하면 개발하면서 만들어진 부분을 쉽게 테스트해 볼 수 있다... 더보기
NestJS 개발 시작하기(로그인 인증 개발); 2. NestJS CLI로 개발시작 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 2. NestJS CLISpring Framework을 닮은 NestJS는 Express로 만드는 Node.js프로그램에 비해 하나의 API를 만드는데 많은 노력이 필요하다. 그래서, JavaScript에서 처음 개발을 시작한 개발자라면, "이렇게까지 해야 하나?"라는 거부감을 느끼게 하는 점도 없지 않다. 하지만 Spring Framework처럼 한번 손에 익으면 NestJS가 추가설정 없이 기본으로 제공하는 AOP나 IoC가 오히려 많.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 1. NestJS와 Spring의 비교 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수  프로그램 개발은 고객의 요구사항, 시장의 요구사항, 심지어는 유행에 따라 사용하는 소프트웨어, 인프라뿐만 아니라, 프로그래밍 언어도 바뀌는 추세이다. 그래서 필요할 때 꺼내 쓸 수 있도록 프로그래밍 언어에 대한 기억도 기록해 보려고 한다.0. 개인 경험에 비춘 프로그래밍 언어의 짧은 역사내 기억으로,   C/C++로 개발할 때는 특정 서버(대표적으로 IBM, HP, Sun 서버 등)에 맞는 바이너리로 컴파일해야 하기 때문에, 컴파일하기 .. 더보기