제출 링크
https://github.com/handy-o/next-begin/commit/f222a9e6f5b6d582622adca61e516648ea6edae1
vercel preview
https://carrot-challange-git-submitchallenge-dys-projects-6e08e76b.vercel.app/
# 12/24~25(화~수) 과제
### npm 설치
1. npm install bcrypt - bcrypt 설치
2. npm install @types/bcrypt - bcrypt types
3. npm install iron-session - iron-session 설치
### 목표
지난 섹션에서 생성한 같은 프로젝트를 활용하여 진행합니다:
- Zod, 서버 액션, 미들웨어, 테일윈드, 프리즈마, iron-session 및 bcrypt를 사용하여 유저 인증을 구현합니다.
- 3가지 페이지를 구현합니다: /create-account, /log-in, /profile.
- /create-account 및 /log-in양식은 Zod를 사용하여 유효성을 검사하고 오류를 표시해야 합니다.
- 유저는 로그인한 후에만 /profile을 볼 수 있어야 합니다.
- /profile 페이지에는 유저 프로필이 표시되어야 합니다.
### 관련 링크
1. https://www.youtube.com/watch?v=67UwxR3ts2E - 해시함수
2. https://www.youtube.com/watch?v=tosLBcAX1vk - 세션vs토큰vs쿠키
3. https://1password.com/password-generator - 비번생성
---
### 강의
- #8.0 ~ #8.13
### 특이사항 기록
#### 1. await cookies()
##### 원인! 비동기 실행에서 Next의 cookies()는 읽을 수 있는 요소로 리턴되어야하는데, await 없이는 Promise가 반환되어서 타입에 맞지 않음
1-1. 에러남 cookies()
const cookie = await getIronSession(cookies(), { ~~ } )
1-2. 에러 안남 await cookies()
const cookie = await getIronSession(await cookies(), { ~~ } )