๋ก๊ทธ์ธ ๋ฐ์ฝ๋ ์ดํฐ ์ดํดํด๋ณด์
๋ฐ์ฝ๋ ์ดํฐ๋?!
๊พธ๋ฉฐ์ฃผ๋ ๊ฒ !!
- ์์ ๊ฒฝ์ฐ๋ค ๋ชจ๋, ๋ก๊ทธ์ธ์ด ํ์ํ ์์
์ธ๋ฐ
๋งค๋ฒ ๋ก๊ทธ์ธ ํจ์ ์คํ + ๊ทธ ํ ๊ธฐ๋ฅ ํจ์ ์คํ์ ๋ฐ๋ณตํ๋ ๊ฒ์
๋๋ฌด ๋นํจ์จ์ ์ด๋ค.
๊ทธ๋์ ๋ก๊ทธ์ธ ๋ฐ์ฝ๋ ์ดํฐ ํจ์๋ฅผ ๋ง๋ค์ด ๋์ ํ,
๋ก๊ทธ์ธ์ด ํ์ํ ๋ก์ง ์์
@login_decorator
๋ก ๋ฐ์ฝ๋ ์ดํฐ ํจ์๋ฅผ ๋ถ์ฌ์ค๋ค.
import jwt
import bcrypt
from django.http import JsonResponse
from my_settings import SECRET_KEY, ALGORITHM
from user.models import User
def login_decorator(func):
def wrapper(self, request, *args, **kwargs):
# ๋งค๊ฐ๋ณ์๊ฐ ๊ณ ์ ๋์ด ์์ง ์์ ๋, wrapperํจ์๋ฅผ ๊ฐ๋ณ ์ธ์ ํจ์๋ก ๋ง๋ ๋ค
try:
if token:
access_token = request.header.get('Authorization', None)
payload = jwt.decode(access_token, SECRET_KEY, algorithm = ALGORITHM)
user = User.objects.get(id=payload['userid'])
request.user = user
except jwt.exceptions.DecodeError:
return JsonResponse({'message' : 'INVALID_TOKEN'}),
except User.DoesNotExist:
return JsonResponse({'message' : 'INVAILD_USER'}),
return func(self, request, *args, **kwargs)
return wrapper