로그인 JWT 발행하기

min00young·2020년 11월 10일
0

로그인시 jwt를 발행해야 하는이유

http의 stateless속성으로 인해서, 서버는 새롭게 들어오는 사용자가 로그인을 했던 회원인지, 처음 온 회원인지 구분할수가 없습니다. 그래서 로그인을 했던 사용자에게 회원임을 확인시켜줄 토큰을 발행하게 됩니다. 사용자가 다음에 로그인이 필요한 페이지에 들어갈때 토큰을 통해서 서버는 회원임을 확인하게 됩니다. 하지만 위조가 가능한 토큰이라면 해킹의 위험이 있기때문에 jwt방식을 통해서 암호화된 토큰을 발행하게 됩니다.

jwt 사용하기

jwt를 사용하기 위해서는 pyjwt 라이브러리를 설치해야합니다.

pip install pyjwt

jwt.encode()를 이용해서, jwt를 만들게 됩니다. 결과값은 바이트형태의 값입니다.
jwt.encode()메서드는 3개의 인자를 이용하는데, jwt로 만들고자 하는 딕셔너리자료, SECRET키, 알고리즘입니다. jwt.encode()로 jwt를 만들고, 사용자가에게 전달을 위해서 decode('utf-8')을 진행합니다.


import jwt

...

SECRET = 'secret'
access_token = jwt.encode({'id':1}, SECRET, algoritm = 'HS256')
access_token = access_token.decode('utf-8')

사용자에게 전달해야 하는 jwt는 return할때, json으로 변환되서 보내지는 response에 키와 밸류값을 추가해서 보내게 됩니다.


return JsonResponse({
'message': 'login success',
'access_token': access_token
}, status=200)

profile
개발공부를 하면서 배우고 경험하고 앞으로 알아가야할것들에 대해서 정리하고 있습니다 🙂

0개의 댓글