엔티티 변경하기 사용자는 여러개의 게시판을 쓸 수 있으므로 user와 board는 one to many 관계를 설정한다. comment도 마찬가지로 user와 one to many 관계이다! 따라서 board, comment와 user 는 many to one 관계이다. User, Board, Comment 엔티티를 아래처럼 관계를 적용하여 변경하자. User 엔티티 src/entity/User.ts board와 one to many, comment와 one to many 관계 설정 import { Column, CreateDateColumn, Entity, JoinTable, ManyToMany, OneToMany, PrimaryGeneratedColumn, Unique, UpdateDateColumn..
인증 미들웨어 설정 인증이 필요한 API로 접근 시 jwt 토큰 정보가 있고 유효한지를 먼저 체크하는 미들웨어를 생성하자. HTTP 헤더에 authorzaition 키가 있는지 체크하고 있다면 토큰 정보가 Bearer 다음에 들어가 있으므로 Bearer가 있는지 체크하고 없다면 401 에러를 리턴한다. 토큰을 꺼내서 verify 함수를 사용해서 토큰이 유효한지 체크하고 req에 userid와 roles 정보를 세팅하여 뒤에 나올 권한 미들웨어에 넘겨주자! 우선 src 폴더 아래 middleware 폴더를 만든 후 AuthMiddlewars.ts 파일을 생성하자! src/middleware/AuthMiddleware.ts 아래 next() 메서드는 현재 라우터에서 판단하지 않고 다음 라우터에서 respon..
참고 https://eastflag.co.kr/fullstack/rest-with-nodejs/react-rest_auth_login/ 회원가입 & 로그인 API 설계 https://duckgugong.tistory.com/231 인증과 권한 설계 엔티티 설계 사용자는 여러가지 권한을 가질 수 있고 권한은 여러명의 사용자를 가질 수 있다. 사용자와 권한은 many to many 관계를 가진다고 볼 수 있지만 DB에서 many to many 관계를 직접적으로 가 duckgugong.tistory.com 우선 위 링크를 참고해서 entity를 설계하자 /api/auth/signin - 회원가입 API url /api/auth/signup - 로그인 API url 우선 패스워드를 암호화할 모듈과 jwt 모듈을..
엔티티 설계 사용자는 여러가지 권한을 가질 수 있고 권한은 여러명의 사용자를 가질 수 있다. 사용자와 권한은 many to many 관계를 가진다고 볼 수 있지만 DB에서 many to many 관계를 직접적으로 가질수는 없고 반드시 중간에 mapping 테이블을 가져하고 사용자와 mapping 테이블은 one to many 관계를 가져야 하고 역할과 mapping 테이블도 one to many 관계를 가지도록 설계해야 한다. typeORM에서는 many to many 관계를 설정하면 mapping 테이블을 자동으로 만들어준다! 사용자 엔티티 src 아래 entity 폴더에 사용자 엔티티(테이블)을 설계하자. mapping 테이블의 이름은 user_role이다. src/entity/User.ts emai..