JWT ±¸Çö Á¦°¡ Á¦´ë·Î ÇÑ°Ô ¸Â´ÂÁö .. ¾Æ¸®¼ÛÇÕ´Ï´Ù. Á¶¾ðÁ» ºÎŹµå¸³´Ï´Ù.

   Á¶È¸ 2235   Ãßõ 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