비밀번호 틀리게 입력했을 때, 로그인창에 Login failure 라는 단어가 뜨질 않습니다.
.then(data => {
// 토큰을 브라우저 로컬호스트에 저장
localStorage.setItem('token', data.accessToken)
setAuthInHeader(data.accessToken)
this.$router.push(this.rPath)
console.log(data)
})
.catch(err => {
this.error = err.data.error
// this.error = err.response.data.error
console.log('에러발생1: '+err)
console.log('에러발생2: '+err.data.error)
})
그래서 로그찍어보고 컨솔창에서 확인해보니 아래와 같이 에러가 발생하는데 왜 그런지 모르겠습니다.
에러발생1: TypeError: Cannot read property 'accessToken' of undefined
Uncaught (in promise) TypeError: Cannot read property 'error' of undefined at eval (Signin.vue?3d55:88)
Answer 5
14
직접 코드 따라서 작성하면서 (강사님이 만들어두신 브랜치 체크아웃해서 실습하지 않고) 강의 진행하신 분들은 api/index.js 파일에
if (status === UNAUTHORIZED) return onUnauthorized()
로 되어 있을텐데, return 을 제거해야합니다.
원래 의도대로라면, 서버에서 401을 뱉으면 api/index.js 의 axios 사용하는 catch 블록에서 {"error":"Login failure"} 를 담은 예외를 던져줘야 하는데, return onUnauthorized() 실행으로 에러오브젝트 전달하는 부분이 실행되지 않습니다.
그 결과, 서버에서 401 을 반환받은 경우일지라도, Login.vue 컴포넌트 onSubmit 메소드에서는 .then() 으로 가서 처리가 되고, return onUnauthorized() 실행 결과에는 accessToken 값이 없는 상태이므로 여기서 1차적으로 예외가 발생하여
"Cannot read property 'accessToken' of undefined"
가 출력됩니다. 이 예외로 인해 .catch() 로 가게 되고, 여기서는 data.error 가 없으니까
"Cannot read property 'error' of undefined"
오류가 발생하고, 로그인 실패시에 화면에 출력하려는 빨간 문구도 나오지 않게 됩니다.
혹시나 저같은 분이 또 있을까 싶어서 남겨둡니다 참고하세요
0
server api를 보면 401 코드로 error 메세지를 출력합니다.
const request = (method, url, data) => {
const {token} = localStorage
if (token) setAuthInHeader(token)
return axios({
method,
url: DOMAIN + url,
data
})
.then(result => result.data)
.catch(result => {
console.log(result.response)
const { status } = result.response
if (status === UNAUTHORIZED) return onUnauthorized()
throw result.response
})
}
이중에서 이전시간에 작성한
if (status === UNAUTHORIZED) return onUnauthorized()
위 코드 때문에 데이터를 리턴하지 않아서 그런것 같아 보입니다.
객체가 함께 반환되는데 왜 그럴까요
1
135
2
babel-core module 에러
0
227
2
watch와 computed
1
247
1
nextTick 관련 질문
0
705
1
a 태그에 href를 빈 값으로 계속 주는 이유
0
767
1
함수에서 _를 사용하셨는데 어떨때 쓰이는 건가요?
0
348
1
watch로 router 감시할 때
0
407
1
보드 아이템 배경색 변경 관련 질문
0
288
1
NavigationDuplicated 에러
0
673
1
vue-router 설치 중 계속해서 오류가 발생합니다.
2
1414
2
로컬 스토리지 관련 질문입니다!
0
469
1
<router-link> 질문
0
310
1
(재질문/Vuex 적용 - 인증 1) 강의에서 8분 18초 부분 질문 있습니다.
0
285
1
router-link 와 router-view 의 차이를 모르겠습니다!
1
1089
1
왜 index.js를 바로 볼 수 있나요?
0
366
2
리스트 내 카드 이동 오류
1
542
0
보드를 추가했을 때 추가한 보드에 대한 화면 업데이트(?) 갱신(?)에 관한 질문입니다.
0
292
1
(Vuex 적용 - 인증 1) 강의에서 8분 18초 부분 질문 있습니다.
0
444
1
npm install 시 에러
0
992
2
안녕하세요 리스트 이동 관련 질문이 있습니다.
0
321
2
질문이 있습니다.
0
299
1
마지막 부분에 로그아웃 해서 로그인 화면으로 돌아왔을 때
0
267
1
소스 공유 받을수 있을까요?
0
329
1
setAuthInHeader 했는데 오류가 발생합니다.
0
250
1

