TIL
2022년 9월 21일 개발일지
DoosanBaek
2022. 9. 21. 08:57
@app.route('/')
def home():
token_receive = request.cookies.get('mytoken')
try:
payload = jwt.decode(token_receive, SECRET_KEY, algorithms=['HS256'])
user_info = db.user.find_one({"id": payload['id]})
except jwt.ExpiredSignatureError:
return redirect(url_for("login", masg = "로그인 시간 만료."))
except jwt.exceptions.DecodeError:
return redirect(url_for("login", msg= "로그인정보가 존재하지 않습니다."))
Today I learn
1. jwt 형식의 로그인
token_receive = request.cookies.get('mytoken')
토큰을 가저온다.
쿠키 -> 브라우저에 저장되는 정보 (임시저장) 키:벨류 형태(딕셔너리형태)로 저장
payload = jwt.decode(token_receive, SECRET_KEY, algorithms=['HS256']
payload 를 꺼낸다. (암호화된 값을 decoding해서)
id를 꺼내서,
user_info = db.user.find_one({"id": payload['id]})
해당하는 user_info가 db에 있으면 넘겨주고,
except jwt.ExpiredSignatureError:
return redirect(url_for("login", masg = "로그인 시간 만료."))
except jwt.exceptions.DecodeError:
return redirect(url_for("login", msg= "로그인정보가 존재하지 않습니다."))
없을경우에 로그인 정보가 존재하지 않는다는 메시지를 리턴
로그인 시간이 지났을 경우는 로그인 시간이 만료되었다는 메시지를 리턴