언제든 문제가 생길 수 있다.
5분전에 멀쩡하던 코드가 갑자기 아무 이유없이 박살나는 곳이
개발 세계 인것 같다.

분명 로컬환경에서 멀쩡하던 파일이 왜 웹에 업로드 되자마자 문제를 일으키는지….

토큰값이 encoding & decoding 되는 과정에서 UTF-8 과 HS256 과정에서 문제가 발생 한 것 같다.

@app.route('/login')
def home():
   token_receive = request.cookies.get('mytoken')
   try:
       payload = jwt.decode(token_receive, SECRET_KEY, algorithms=['HS256'])
       ## 토큰 존재시 > index  없으면 > login으로 ##
       user_info = db.user.find_one({"id": payload['id']})
       return render_template('index.html', nickname=user_info["nick"])
   except jwt.ExpiredSignatureError:
       return redirect(url_for("login", msg="로그인 시간이 만료되었습니다."))
   except jwt.exceptions.DecodeError:
       return redirect(url_for("login", msg="로그인 정보가 존재하지 않습니다."))
@app.route('/index/login')
def login():
    msg = request.args.get("msg")
    return render_template('login.html', msg=msg)


@app.route('/index/login', methods=['POST'])
def index_login():
    id_receive = request.form['id_give']
    pw_receive = request.form['pw_give']

    pw_hash = hashlib.sha256(pw_receive.encode('utf-8')).hexdigest()
    result = db.user.find_one({'id': id_receive, 'pw': pw_hash})

    if result is not None:
        payload = {
            'id': id_receive,
            'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
        }
        token = jwt.encode(payload, SECRET_KEY, algorithm='HS256')

        return jsonify({'result': 'success', 'token': token})
    else:
        return jsonify({'result': 'fail', 'msg': '아이디/비밀번호가 일치하지 않습니다.'})
@app.route('/index/register',
def index_register():
    id_receive = request.form['id_give']
    pw_receive = request.form['pw_give']
    nickname_receive = request.form['nickname_give']

    pw_hash = hashlib.sha256(pw_receive.encode('utf-8')).hexdigest()

    db.user.insert_one(
        {'id': id_receive, 'pw': pw_hash, 'nick': nickname_receive})

    return jsonify({'result': 'success'})