스케쥴 생성 부분 서비스, 컨트롤러 수정 필요
jwt 가드 만들기
뭐가 필요한지, 뭐를 반환할 지
1. 로그인 시 인증 가능해야함
2. 로그인 한 사람이 누구인지 알아야함.
typeORM은 Entity를 사용하기 위해 사용한다.
app.module에 typeORM 써줌 -> 해당 모듈에 TypeOrmModule.forFeature로 임포트를 해줌 -> 해당 서비스 계층에 @InjectRepository()로 레파지토리를 써줄 수 있음
nest g res 프로젝트 명령어를 사용하면 프로젝트명의 파일들이 셋팅이 된다(컨트롤러 엔티티 서비스 테스트코드)
Entity 파일
@Column({type: 'varchar'}) => 코드 레벨에서의 자료형 지정이 아닌 DBMS를 위한 자료형을 지정해주는거임
email: string
@Column({type: 'number', select: false}) => select: 레포지토리 계층에서 find를 했을 때 false로 지정된 것들은 결과(비밀번호)를 가져오지 않음
password: number
** find를 할 때 강제적으로 password를 명시해주면 password를 가져올 수 있음
create(createUserDto: CreateUserDto) {
const{email, password} = createUserDto;
// 비밀번호를 암호화 시킨다(bcrypt의 hash를 사용해서)
const hashedPassword = await bcrypt.hash(password, 12)
외부 라이브러리이기 때문에
import { compare, hash } from 'bcrypt' 로 임포트 해줌
root app.module에서 Entity 한방에 불러오는 방법
useFactory 안에 entities: [__dirname + '/../**/*.entity.{js, ts}'] 를 써주면 엔티티를 싹다 가져옴
Guard
guard - passport - strategy (서로 연결되어있음)
guard에서 extends passport 하면 strategy가 나옴
gaurd = 가드(본청)
passport = 브로커(스트레티지를 가드로 출장보냄)
strategy = 노예(가드에 출장 나감)
이것저것 찾아봐도 모르겠음... 추가적으로 공부가 더 필요함