inflearn logo
강의

Course

Instructor

Slack Clone Coding [Backend with NestJS + TypeORM]

ERROR [ExceptionsHandler] request.isAuthenticated is not a function

1029

minsu

27 asked

0

@UseGuards(new NotLoggedInGuard), @UseGuards(new LoggedInGuard) - 데코레이터를 회원가입과, 로그인에 각각 추가를 해주고 -> postman으로 회원가입, 로그인 할 시 에러가 발생합니다.

 

{
"statusCode": 500,
"message": "Internal server error"
}

[Nest] 6463  - 2022. 02. 03. 오후 4:28:14   ERROR [ExceptionsHandler] request.isAuthenticated is not a functionTypeError: request.isAuthenticated is not a function   

 

회원가입, 로그인 라우터에 @UseGuards 를 뺴고 실행 할 시 정상적으로 작동합니다.

not-logged-in.guard.ts, logged. 쪽 auth 폴더쪽을 아에 삭제하고 제로초님 완성본 slack 본 auth 파일을 그대로 가져와서 실행해봤는데 계속 똑같은 에러가 발생하는 거 같습니다.

왜 에러가 발생하는 것일까요.. 

또 신기한게 로그인 라우터 @UseGuards(LocalAuthGuard)는 정상적으로 동작하는 거 같습니다.

NotLogged, Logged 만 실행이 안되네요..

 

@ApiResponse({
status: 200,
description: '회원가입 성공',
type: UserDto
})
@ApiOperation({ summary: '회원가입' })
@UseGuards(new NotLoggedInGuard)
@Post()
async SignUpUser(@Body() body: JoinRequestDto) {
await this.userService.SignUpUser(body.email, body.nickname, body.password)
}
 
@ApiCookieAuth('connect.sid')
@ApiOperation({ summary: '로그아웃' })
@UseGuards(new LoggedInGuard)
@Post('logout')
async logout(@Response() res) {
res.clearCookie('connect.sid', { httpOnly: true });
return res.send('ok');
}

 

 

nodejs express TypeORM NestJS

Answer 2

1

zerocho

main.ts에서도 passport 관련 코드 app.use로 등록하셔야 합니다. 그 부분 등록하셨나요?

0

minsu

네 추가 했습니다 

app.use(passport.initialize());
app.use(passport.session());
 

0

minsu

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import passport from 'passport';
import cookieParser from 'cookie-parser';
import session from 'express-session';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
import { HttpExceptionFilter } from './httpException.filter';
import { ValidationPipe } from '@nestjs/common';

declare const module: any;

async function bootstrap() {
const app = await NestFactory.create(AppModule);
const port = process.env.PORT || 3000;

app.useGlobalPipes(new ValidationPipe())
app.useGlobalFilters(new HttpExceptionFilter());

 
const config = new DocumentBuilder()
.setTitle('slack API')
.setDescription('slack API 문서 입니다.')
.setVersion('1.0')
.addCookieAuth('connect.sid')
.build();

const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document);

await app.listen(port);
console.log(`Listening on port${port}`);

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

if (module.hot) {
module.hot.accept();
module.hot.dispose(() => app.close());
}
}
bootstrap();

0

minsu

@ApiCookieAuth('connect.sid')
@ApiOperation({ summary: '로그아웃' })
@UseGuards(new LoggedInGuard)
@Post('logout')
async logout(@Response() res) {
res.clearCookie('connect.sid', { httpOnly: true });
return res.send('ok');
}
@ApiResponse({
status: 200,
description: '회원가입 성공',
type: UserDto
})
@ApiOperation({ summary: '회원가입' })
@UseGuards(new NotLoggedInGuard)
@Post()
async SignUpUser(@Body() body: JoinRequestDto) {
await this.userService.SignUpUser(body.email, body.nickname, body.password)
}

0

zerocho

https://github.com/ZeroCho/sleact/blob/master/nest-typeorm/src/main.ts

코드 순서도 일치해야 합니다.

0

gmldnjs26

@김수민

https://stackoverflow.com/questions/29111571/passports-req-isauthenticated-always-returning-false-even-when-i-hardcode-done

여기 참조하세요!

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

0

110

3

질문 있습니다.

0

294

3

코드 편집기 확장 프로그램

0

209

2

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

0

143

2

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

0

166

3

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

0

152

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

224

1

CORS 질문 있습니다.

0

417

2

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

0

184

2

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

0

447

1

401 unauthorized문제

0

286

1

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

0

225

1

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

0

252

2

CORS 에러 질문 있습니다.

0

318

2

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

0

411

2

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

1

1154

3

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

0

454

1

start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?

0

322

1