[데브코스] WIL 6

devlog·2024년 4월 10일
0

풀뎁코

목록 보기
7/14

유효성 검사 vaildation

  • 사용자가 입력한 값이 유효성(타당성)을 확인하는 것
    • e.g. userId - not null, 숫자 등

express-validator 모듈

  • npm install express-validator 로 설치 후 사용 가능한 외부 모듈
// e.g.
const validate = (req, res, next) =>{
  const err = validationResult(req)

  if(!err.isEmpty()){
    return res.status(400).json(err.array())
  }else{
    return next() // 다음 함수, 미들웨어를 수행
  }
}

next()

  • 다음 함수를 찾아감
    → 에러가 없으면 다음 함수로 이동하여 실행함

JWT (JSON Web Token)

  • JSON 형태의 데이터를 안정하게 전송하기 위한 웹에서 사용하는 토큰
  • = 토큰을 가진 사용자가 “증명”을 하기 위한 수단
    • 토큰 ⇒ (인증용) 입장 가능한 유저 / (인가용)권리자 권한&일반 유저 권한
  • 장점
    • 보안에 강함, 암호화가 되어있음
    • 서버가 상태를 저장하지 않음, Stateless(= HTTP 특징을 잘 따름)
    • 서버에 부담을 덜 수 있음
      • 토큰을 발행하는 서버를 따로 만들어줄 수도 있음

jwt.io

  • Header
    • 암호화할 때 사용된 알고리즘과 토큰 형태(타입: 기본적으로 jwt)
  • Payload
    • 사용자 정보, 권한이 담김 (JSON 형태), 비밀번호는 담지 않음
  • Verify signature
    • Header와 Payload를 내용을 보증(값에 대한 서명), Header나 Payload를 값이 변경하면 같이 변경됨( 서명값이 바뀌면 인증이 되지 않음)

JWT 토큰 발행

  • iat(issued at) : 토큰 발행 시간 = 발행 시간마다 토큰 값이 다름

.env(enviroment : 환경 변수 설정 값)

  • 개발 중, 포트 넘버, DB 계정, 암호키 등 유출되면 안되는 중요한 환경 변수
    • cf. 깃허브에 올라가면 안되는 값
  • 프로젝트 최상위 위치에 있어야함

  • request에 있는 쿠키를 꺼내서 쓸 수 있게 도와주는 미들웨어

쿠키 설정 변경 httpOnly

  • 프론트엔드가 아니라 API 호출만 허락
  • true로 되어있으면 프론트가 아닌 HTTP로 접근 했을 때만 요청 받음

++클린코드

  • 클린 코드의 관점 상 긍정문으로 조건을 제시해야함
    • e.g. 밥 안드셨나요? 아니요 ⇒ 이중 부정 = 긍정
    • 밥드셨나요? 네 = 긍정

0개의 댓글