inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

typeorm transaction

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

446

윤희중

작성한 질문수 12

0

"success": false, "code": 403, "data": "Forbidden resource"

이렇게 에러가납니다.

@ApiCookieAuth('connect.sid')
  @UseGuards(LoggedInGuard)
  @Post('logout')
  async logout(@Res() res) {
    console.log(res);
    res.clearCookie('connect.sid', { httpOnly: true });

    return res.send('ok');
  }

프론트에서는

 const logoutMutation = useMutation({
    mutationFn: () => {
      return api.post("/api/teachers/logout");
    },
    onSuccess: (res) => {
      localStorage.removeItem("teacherState");
      router.push("/auth/login");
    },
    onError: (error) => {
      console.log(error);
    },
  });

이런식으로 보내고있거든요 api는 axios에 credentials: true 와함꼐 보내고있습니다.

node.js express nestjs typeorm

답변 1

0

제로초(조현영)

저건 지금 로그인을 안 한 상태에서 로그아웃 요청을 했다는 뜻입니다. api가 axios instance인 건가요? 일단 withCredentials와 상관 없이 로그인 후 쿠키가 브라우저에 심어졌는지 궁금하네요. 로그아웃 말고도 다른 api 요청도 403 뜨지 않나요?

0

윤희중

넵 쿠키가 브라우저에 심어졌습니다.

api는 axios 인스턴스가맞습니다.

// lib/api.ts
import axios from "axios";

const api = axios.create({
  baseURL: "http://localhost:3095",
  headers: {
    "Content-Type": "application/json",
  },
  withCredentials: true,
});

export default api;

 

그리고 image보면 브라우저에 쿠키가심어집니다. 그리고 처음에 로그인후 가입하면 정상적으로 로그인 /로그아웃이 되는걸 확인했는데요. 일정시간이지나면 로그아웃이안되는데 왜그런지 잘모르겠네요...

 

세션설정은 아래와같이 설정했습니다.

 

  app.use(cookieParser());
  app.use(
    session({
      resave: false,
      saveUninitialized: false,
      secret: process.env.COOKIE_SECRET,
      cookie: {
        httpOnly: true,
        // maxAge : 6000 //
      },
    }),
  );

 확인해보면 nestjs를 끄지않고 나두면 아래에러가발생합니다. 그래서 다시 서버를 재시작하면 로그인 로그아웃이 정상적으로 되는걸확인했습니다. 그러나 일정시간이 지나면 다시 저에러가 나타나더라구요. 왜그런지 잘모르겠네요

 

[Nest] 18712 - 2024. 06. 23. 오후 3:14:56 ERROR [ExceptionsHandler] Connection is not established with mysql database

TypeORMError: Connection is not established with mysql database 이런에러가뜨네요 로그아웃하려고할때마다

1

제로초(조현영)

Connection is not established with mysql database

에러메시지를 보면 지금 무언가때문에 DB와의 연결이 끊기는 것 같은데요. 그게 원인이 아닐까 싶습니다.

강의자료는 어디서 다운받나요?

0

110

3

질문 있습니다.

0

294

3

(강의 5:42 질문) providers를 통한 여러 개의 인스턴스 생성 & exports 통한 싱글톤 생성

0

154

2

코드 편집기 확장 프로그램

0

209

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

143

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

166

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

151

2

로그인방법이 고민됩니다.

0

190

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

296

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

242

2

npm run db:create 시에 발생하는 decorating 오류

0

231

2

RxJS 디버깅 질문 있습니다.

0

187

3

CacheManager에 대해 질문 있습니다.

0

173

2

로깅은 어떻게 하는게 효율적일까요?

0

222

1

CORS 질문 있습니다.

0

417

2

쿠키 옵션에 대해서 질문 있습니다.

0

184

2

401 unauthorized문제

0

285

1

가드의 장점에 대해서 질문이 있습니다.

0

225

1

로그 관리에 대해 질문 있습니다.

0

251

2

CORS 에러 질문 있습니다.

0

317

2

배포 환경 DB 연결 질문 있습니다.

0

410

2

socket io 미 연결 문제 (nest & flutter)

1

1151

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

451

1

NextJS와 NestJS 소켓IO 연결

1

1479

1