SIR

그누보드 RestAPI Session VS JWT 뭘써야 하나요? > RESTful

RESTful

그누보드 RestAPI Session VS JWT 뭘써야 하나요? 정보

그누보드 RestAPI Session VS JWT 뭘써야 하나요?

본문

먼저 이글은 제 개인의 경험을 기반으로 작성한 글입니다. 제가 미처 모르는 내용이 있을수 있습니다.

 

RestAPI는 왜 JWT를 써야 하는 걸까요?

- 전통적인 웹개발에서는 프론트/백엔드의 구분이 없습니다.(대신 웹퍼블리셔가 있죠^^)  

   모든 정보는 서버에서 처리됩니다. 클라이언트는 인증을 위한 최소 정보인 session_id만 쿠키값으로 가지고 있으면 됩니다.

 

- 백엔드/ 프론트를 구분하고, 둘간의 통신을 Restful API라는 방식을 추가하게 되었습니다. 사용자 인증은 중요한 이슈입니다. 그러나 여전히 웹환경입니다. 단일 서버이고, 하나의 인증정보로 여러 서비스와 연계되지 않습니다. 하나의 서비스입니다. 이 경우 그냥 기존 Cookie 방식의 Session 을 사용합니다.

웹브라우저라면 별다른 작업없이 처리됩니다.(브라우져가 알아서 Cookie  헤더를 보내주니까요.)

서버에선 session_start() 와,  $_SESSION 값만 처리하면 됩니다. 기존 작업에서 변경되는게 없죠.

 

만약 APP에서 RestAPI를 사용 한다면 어떨까요?(안드로이드, IOS...)

최초 로그인 API에서 session_id 를 token 으로 보내줍니다.


{
"status" : 200,
  "message" : "LOGIN SUCCESS",
  "token_data" : "xxxxxxx_session_id_value",
}

(token_data는 세션아이디입니다. PHP에서 session_start() 이후에 session_id()로 조회가능합니다.) 

네이티브앱 클라이언트 에서 RestAPI를 호출할때 Http Header에 Cookie값을 추가합니다.

일바 브라우져에서 쿠키값 전송하듯이...


Cookie: PHPSESSID=xxxxxxx_session_id_value; 

 

- 하이브리드 앱이라면 어떻게 될까요?

네이티브 영역에서 login처리후,,, 웹뷰의 PHPSESSID cookie값을 로그인결과로 받은 token_data로 설정합니다.

이러면, 그냥 웹브라우져의 세션인증방식과 동일해집니다.

 

[결론]

- 기존 웹브라우저의 Session 인증을 그대로 써도 아무런 문제가 없습니다.

   오히려 서버 코드를 기존 형태로 사용할수 있어서, 추가 작업이 필요없습니다.

- 완전히 API를 새로 설계한다면, JWT를 고려해볼만합니다.

- 그누보드 베이스에 Plugin 형태로 만드는 RestAPI는 그냥 Session을 쓰는게 바람직합니다.

- 이해하기 쉬운 코드가  좋은 코드입니다. 사용법도 편하다면, 더 좋은 코드입니다.

 

[참고글]

https://wjrmffldrhrl.github.io/JWT/

 

 

 

 

 

추천2

댓글 4개

좋다 vs 안좋다. 이렇게 결론 내리는것이 아니라,
그누보드에서 RestAPI를 구현하는 경우, 굳이 JWT를 써야할 이유가 없다면, Session도 문제 없다는것입니다. JWT를 쓰면 일이 커지거든요.
저는 처음부터 JWT를 보기 시작해서 JWT의 동작이 더 편한 것 같습니다.

링크를 보면 옆에 자동으로 되는 것도 구현해야 되는데.. 스크롤스파이...
전체 51 |RSS
RESTful 내용 검색

회원로그인

진행중 포인트경매

  1. 참여27 회 시작21.03.02 12:00 종료21.03.07 12:00

(주)에스아이알소프트 (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT