본문 바로가기

spring boot

JPA / spring boot (session, token, oauth)

세가지 방식을 통한 로그인 처리

 

1. session

입장권을 발급받아 그 입장권에 유저의 세션 id를 저장하고 서버나 DB에 보관한다.

 

장점

유저가 입장권을 관리하지 않기 때문에 token에 비해 보안이 철저하다.

 

단점

유저가 get, post 요청을 할 때마다 DB 조회를 하기때문에 과부하가 걸릴 수 있다.

 

2. token

유저에게 유저의 정보가 담긴 입장권을 직접 발급한다.

유저가 입장권을 조작은 못 하는게 해당 정보를 짧은 문자열로 암호화하기에 저장된 값과 다르면 응답을 받을 수 없다.

 

장점

유저가 직접 입장권을 관리하기 때문에 대규모의 데이터를 관리할 때도 DB에 부담이 덜하다.

 

단점

유저가 직접 입장권을 관리하는 만큼 그 입장권이 해킹당하면 서버에선 막을 수단이 없다.

 

session || token 차이점

 

세션은 유저의 정보와 세션 id라는 고유 값을 저장하고 유저에게 보낼 땐 세션 id만 보낸다.

유저는 해당 id를 가지고 서버에 요청을 보내고 비교한 후,  DB에 접근할 수 있다.

 

토큰은 DB에 접근할 필요가 없이 입장권에 유저에 대한 많은 정보를 저장하고 발급한다.

 

 

3. OAuth

 

웹에 대한 유저의 사용권한을 빌려 서로 공유하는 방법

회원 정보 또한 공유가 가능하다.