[로그인 통신] access token

하서율·2022년 10월 30일
0

통신

목록 보기
1/1
post-thumbnail

✅ access token이 필요한 이유?

로그인을 하기 위해서는 FE-BE간의 통신이 필요하다.

로그인에 성공하게 되면 로그인정보가 저장되어 있어야 로그인이 필요한 모든 페이지에 접근이 가능한데, HTTP 통신 특성(stateless)에따라 API를 호출 할 때마다 BE에게 로그인정보를 알려주어야하는 불편함이 있다.

때문에 로그인시, BE에서 로그인 권한에 대한 정보가 담긴 access token을 FE에서 받아두고, 필요할 때마다 BE에 전달하여 로그인이 필요한 페이지에 접근하게된다.






✅ 꼭 access token을 사용해야하는 이유?

id / pw으로 통신해도 되지만 보안상의 이유로 access token을 사용!

🛠 먼저, 로그인의 구조를 보면

  1. 유저가 id와 pw를 입력한다.
  2. FE에서 유저가 입력한 로그인 정보를 담아(body에) BE에 로그인 API호출을 한다.
  3. BE에서 데이터 베이스에 해당 로그인 정보 (id/pw)가 있는지 검색한다.
    (이때, DB에서 각각의 로그인정보를 식별할 수 있는 id가 자동생성된다.)
  4. 해당 로그인 정보가 있다면 access token에 3번에서 생성된 자동생성id를 담아 발급하여 응답으로 FE에 보낸다.

위 구조에서 볼수 있듯이, id/pw와 같은 개인정보를 담아 보내는것 보다 식별 id를 담은 access token으로 통신하는 것이 보안상으로 안전하다.






✅ JWT?

Json Web Token

access token을 구현하는 방법에 여러가지가 있는데 그중 대표적인것이 JWT이다.
FE에서는 JWT를 저장해두고 로그인이 필요한 페이지의 API통신을 할 때, JWT를 담아보내면 BE에서 해당 정보를 JSON형식으로 응답한다.

profile
매일 매일 기록하기

0개의 댓글