>  Q&A  >  본문

탐색 가드에서 발생한 오류 해결: "'/'에서 '/dashboard'로 리디렉션하는 동안 오류가 발생했습니다."

사용자로 로그인하면 예상대로 대시보드로 리디렉션됩니다. 로그아웃했다가 다시 로그인을 시도하자마자(다른 사용자와 함께 페이지를 새로 고치지 않은 경우에도) 콘솔에 다음 오류가 반환됩니다.

페이지가 새로 고쳐지지 않더라도 인증된 경우에만 대시보드에서 사용자를 리디렉션하고 싶습니다. 페이지를 새로 고치면 문제 없이 로그인할 수 있다는 것을 알았기 때문입니다.

가능하다면 도와주세요. 다음은 몇 가지 코드입니다:

로그인 방법

으아아아

라우터의 대시보드 경로

으아아아

vuex 저장소에서 작업을 수행해 보세요

으아아아

vuex의 기타

methods: {
    ...mapActions({
    attempt: "auth/attempt",
    }),

    submit(credentials) {
      axios
        .post("http://127.0.0.1:8000/api/login", credentials)
        .then((res) => {
          // console.log(res.data);
          if (res.data.success) {
            
            this.attempt(res.data.token)
          }

          if (res.data.errors) {
            this.loginErrors = res.data.errors;
          } else {
            this.$router.push({ name: 'dashboard' })
          }

          
        })
        .catch((err) => {
          if (
            err.name !== "NavigationDuplicated" &&
            !err.message.includes(
              "Avoided redundant navigation to current location"
            )
          ) {
            
            console.log(err);
          }
        });
    },
  },

P粉143640496P粉143640496241일 전384

모든 응답(1)나는 대답할 것이다

  • P粉771233336

    P粉7712333362024-02-22 10:33:46

    업데이트: 완료하려면 attempt() 的调用,否则 this.$router.push({ name: 'dashboard' }) (因此 /dashboard 路由上的守卫函数)将被调用< em>在对 /api/user API를 호출하기 전에 기다려야 합니다.

    으아악

    next은 정확히 한 번 호출되어야 하는 함수입니다( 반환되지 않음 ).
    라우터의 코드를 다음으로 변경해 보세요.

    으아악

    회신하다
    0
  • 취소회신하다