HOME > python

[Python] flask 쿠키 사용하는 방법, cookie

마지막 수정일 : 2022-07-17 / 생성일 : 2022-05-25
919
View Count

Flask에서 cookie(쿠키)를 사용하는 방법에 대하여 간략하게 알아보려고 합니다.


# Flask에서 cookie 사용하기
최근 Python에 jwt(Json Web Token) 방식을 적용하면서 cookie 값을 불러와 사용할 필요가 있었습니다. 이런 경우 쿠키값을 접근하기 위한 방법과 예제를 간략하게 알아보겠습니다. 먼저 flask에서 cookie를 얻기 위해서는 아래와 같이 flask의 request에 접근해야 합니다.
from flask import request

사실 request는 쿠키를 포함하여 서버에 요청 온 다양한 정보들에 접근이 가능합니다. 즉, cookie 뿐만 아니라 url이나 파리미터, 파일 등등 여러 정보를 모두 얻을 수 있습니다. 여기서 쿠키값을 불러오기 위해서는 아래와 같이 request의 cookies의 get() 함수를 사용할 수 있습니다. 간단한 문법은 다음과 같습니다.

request.cookies.get('cookie_name')

get() 함수는 특정 이름의 쿠키값을 불러와 반환하는 간단한 함수입니다. 그럼 실제로 클라이언트에서 서버로 tkn 이름의 쿠기를 전달한 경우 해당 값을 가져오는 예제를 작성해봅니다.


! flask 토큰값 사용하는 예제
아래의 함수 getToken()은 쿠키값을 가져오기 위한 예제 코드입니다. 만약 tkn이라는 토큰이 있을 때 이를 flask 서버에서 가져오기 위하여 작성된 코드입니다.
from flask import request

def getToken():
  try:
    token = request.cookies.get('tkn')
    tokenDecode = jwt.decode(token, SECRET_KEY, algorithms=['HS267'])
    ....
  except:
    ## Error
    ...

위 예제에서는 에러 등 예외 처리를 위해서 try except 구문을 사용하였습니다. 코드를 간단히 살펴보면 아래와 같습니다.

- 토큰값을 가져오기 위해 flask의 request를 import
- request.cookies.get()을 사용하여 토큰값을 변수 token에 저장
- (참고) 변수 token을 jwt 모듈을 사용하여 디코딩하여 사용
- (참고) try catch를 사용하여 예외 처리



여기까지 flask에서 토큰값을 가져오는 방법에 대하여 간략하게 알아보았습니다. 참고로 위에서 try except 문법을 사용한 이유는 jwt.decode() 과정에서 에러가 발생하는 경우 이에 대한 에러 처리를 하기 위해서 추가한 부분입니다. 단순 토큰 정보를 얻는데요 try except가 반드시 필요하지는 않겠죠.

Author ByEnSSo