JWT 구현 제가 제대로 한게 맞는지 .. 아리송합니다. 조언좀 부탁드립니다.

김제연   
   조회 2518   추천 0    

기존 php 사이트를 node.js 로 바꾸면서 .api 서버를 두고 

API 만 처리 하도록 하고 .. 인증을 JWT로 바꾸었습니다.. 

근데 세션이랑 JWT로그인 방식중 JWT 방식은.. db 요청을 줄이고 

세션으로 인한 메모리 낭비 같은게 없으니 장점으로 보고 작업을 했습니다.


그런데 이게 사용하고 보니까 .. 좀 아리송한 부분이 있습니다.

기본적으로 

아이디 권한 사용자 타입 이렇게 3개를 JWT로 보내고 있습니다.

클라이언트에서 서버로 뭔가를 하려고 토큰을 보내서 받은뒤

뭔가를 하려면.. 일단 user 정보를 쿼리 해와야 합니다.. 3개 가지고는 할 수 있는게 

로그인된 사용자냐 아니냐만 확인 가능하니까요 .. 

결국 node.js 는 요청이 왔을때 사용자 정보를 다시 요청해서 req.user 같은곳에 따로 

등록을 해줘야 합니다.. 이러다 보니 api 서버에서 ... 사용자가 api 를 요청 할때마다 

사용자 정보 가져와서 req.user 에 등록을 해줘야 하는데 .. 

이럴꺼면.. 그냥 세션이 더 낫지 않나 싶은 생각이 드는데요 .. 일단 방법이 없으니

만들고 있긴 한데 .. 원래 이런게 맞는건지.. 

아니면 잘못하고 있는건지 궁금합니다. 조언 부탁 드립니다.

짧은글 일수록 신중하게.
henol 2019-01
제 경우는 JWT는 아니지만 브라우저에 계속 남기고 싶은 데이터를
localstorage 에 저장해서 빼서 쓰는 것을 구현했었습니다.
     
김제연 2019-01
로컬에서 쓰는거면 말씀하신데로 하면 되는데 ..
서버쪽에서 api 요청이 왔을경우 .. 만약
저 상황에서 .. 회사에 소속된 주문을 조회 한다고 하면..
결구 JWT 요청 -> 정상 사용자 맞는지 확인 -> 사용저 정보 조회-> req.user 에 등록
-> 쿼리문에서 req.user 에 등록된 정보를 바탕으로 쿼리

세션에서는 그냥 -> 사용자 인증 및  사용자 정보 조회 -> 쿼리문에서 세션값 그데로 사용

이렇게 되면 세션이 더 간단하고 부하가 없을것 같아서요 .
부연하면 JSON Web Token 은 아시는대로 헤더(알고리즘,타입), 페이로드(데이타), 검증코드(해시)로 이루어 집니다. 내용 자체는 대부분 base64로 인코딩되어있어서 복호화하면 내용은 그대로 노출되는 편이고, 단지 해시코드가 각 사이드에서 가지고 있는 동일한 개인키로 메시지가 정상적으로 만들어졌는지 여부를 '검증'할수 있다고 해서 사용하기에, 보안에 민감하지 않은 정보를 간단한 방법으로 무결한 메시지라고 표현하는데 주안점을 둬야 합니다. 서버쪽에서 유저ID로 처리에 필요한 사용자데이터를 지속적으로 쿼리를 할수밖에 없는 구조라면 좀더 유용한 정보를 보안에 지장없이 추가적으로 담아서 쿼리를 줄일수 있는지 검토가 필요하지 않을까 합니다. JWT 원래목적대로 간단한 방법으로 검증코드만 확인해서 해당 메시지가 진짜 인증해준 사용자가 요청했는지/아닌지 여부만 가지고 동작을 실행시키는 업무로직이라면 믿고 수행해도 됩니다.


QnA
제목Page 1459/5732
2015-12   1794080   백메가
2014-05   5269015   정은준1
2019-03   2861   dragoune
2016-12   6952   이선호
2020-06   3032   쿨쿨쿨
2014-09   16436   겨울나무
2023-06   2386   삐돌이슬픔이
2010-01   7565   sjydevil
2014-09   10946   미니TM
2016-01   3581   하셀호프
2019-04   2889   langrisser
2021-11   3682   누비남
2010-01   13503   전근현
2019-04   6276   반성만
2021-11   2896   엠브리오
2013-03   13794   성투불패
2018-02   5440   호아짱
2010-02   8921   미소찍사
2020-07   5008   신코치
2013-04   6219   프리즘볼
2014-10   4005   권현섭
2013-04   12330   김은식