PSST http://localhost:5000/api/login 500 (INTERNAL SERVER ERROR)
send @ jquery.min.js:2
ajax @ jquery.min.js:2
login @ login?msg=%EB%A1%9C%EA%B7중략....:32
onclick @ login?msg=%EB%A1%9C%EA+중략.....:84
문제의 32 줄
function login() {
$.ajax({
type: "POST",
url: "/api/login",
data: {id_give: $('#userid').val(), pw_give: $('#userpw').val()},
success: function (response) {
if (response['result'] == 'success') {
// 로그인이 정상적으로 되면, 토큰을 받아옵니다.
// 이 토큰을 mytoken이라는 키 값으로 쿠키에 저장합니다.
$.cookie('mytoken', response['token']);
alert('로그인 완료!')
window.location.href = '/index'
} else {
// 로그인이 안되면 에러메시지를 띄웁니다.
alert(response['msg'])
}
}
})
}
82줄에 있는 버튼
<button class="button is-primary" onclick="login()">로그인</button>
해결 :에 해당하는 ajax에 url 주소가 문제였다. "/api/login"으로 수정하면서 다음 단계로 넘어갈 수 있게 되었다. url 주소를 단순히 /login으로 생각했던 것이 문제였다.
Method Not Allowed
The method is not allowed for the requested URL.
AttributeError: 'str' object has no attribute 'decode'
AttributeError: 'str' object has no attribute 'decode' jwt decode Code Example (codegrepper.com)이 웹사이트에 따르면 ('utf-8')이 이미 decode가 되어서 .decode('utf-8')이 필요가 없기 때문에 저 부분을 삭제하면 된다.
.decode('utf-8')를
시도 : token = jwt.encode(payload, SECRET_KEY, algorithm='HS256').decode('utf-8')에서 .decode('utf-8')를 지우고나니 문제가 해결된...것은 아니고 다음 에러를 만날 수 있었다.
NameError: name 'mytoken' is not defined
변수 이름 에러였다. 각각의 파일에서 'token'과 'mytoken'으로 주고 받은 것들을 찾아가면서 잘못한 부분을 찾았다. 수 많은 에러들을 경험하면서 이것저것 고치다가 잘못 적은 부분이었는데
return jsonify({'result': 'success', 'token': token})
mytoken으로 되어있던 부분을 token으로 고치고 아무 기대없이 다음 에러를 기다리고 있었다. 그 순간 갑자기 로그인이 됐다.

아무 의미없이 지었던 닉네님 12와 누군가 만들어놓은 저 문구가 이렇게 반가울 줄이야... 내가 짠 코드는 아니지만 수없이 디버그를 고쳐가면서 코드와 그래도 익숙해지는 시간이었던것 같다.
<script>
// 로그아웃은 내가 가지고 있는 토큰만 쿠키에서 없애면 됩니다.
function logout(){
$.removeCookie('mytoken');
alert('로그아웃!')
window.location.href='/login'
}
</script>
라고 했을 때 아래와 같은 에러가 떴다.
(index):64 Uncaught TypeError: $.removeCookie is not a function
at logout ((index):64:11)
at HTMLButtonElement.onclick ((index):164:70)
1. 태그 내 jquery script 선언이 가장 위에 위치하지 않은 경우.
2.jquery 중복 설치/선언
3. jquery 미설치.
4. 제이쿼리 버전 문제로 인한 충돌
5. path 설정
removeCookie('토큰 키'. {path: '/'})
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>