ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Authentication에 대하여 - CodeHan의 코딩공부
    BackEnd/개념정리 2022. 6. 18. 08:53
    반응형

    Authentication // 사용자 인증이라고 하며 흔히 로그인을 예로 들 수 있다.

    - 사용자가 자신을 증명하는 것!

     

    Login정보는 Server에 저장되는데, 이미 LogOn된 Client와 Server를 어떻게 구분할까?

    여기에는 Session과 JWT가 있다.

     

    Session

    장점 : Client가 서버에 로그인을 요청하면 서버는 DB에서 verify한 다음, 일치한다면 Session을 만들어 DB에 저장한다.

    Sesssion에는 UserId, expiration, 세션유지기간 등에 대한 정보가 담겨있다.

    쿠키에 정보를 담아서 Client에 전송하며 Http only로 전송하면 안전성을 확보알 수 있다.

     

    단점 : 시시각각 변하는 서버에 세션을 저장하고 있으므로 서버의 상태에 영향을 받는다.

    하나의 서버에 세션정보를 저장하고 있으므로 다른 여러 서버에서 해당 서버에 요청이 몰려 성능이 떨어질 수 있다.

     

    JWT(JsonWebToken)

    장점 : Header, Payloda, Signature로 나뉘며 secret을 통해 정보의 유효성을 확인할 수 있다.

    유효한 사용자라면 서버에 JWT를 생성해서 Client측에 보낸다.

    Server에 State에 영향을 받지 않는다.

     

    단점 : 서버와 Client간 JWT를 계속 주고받으므로 이부분에서 무넺가 발생할 수 있다.

    이를 극복하기위해 bcrypt라는 라이브러리를 사용하는데, 암호를 hash하는 라이브러리이다.

    쉽게 해킹할 수 없게 알고리즘과 sort를 사용한다.

     

    반응형

    댓글

Designed by Tistory.