inflearn logo
강의

Course

Instructor

Slack Clone Coding [Backend with NestJS + TypeORM]

local serializer, guard

serializeUser가 호출되지 않습니다.

569

youngkiu0922

15 asked

0

아직은 DB를 붙이기 전인데요,

passport-kakao에서 얻어온 ID를 session에 저장하고,
SessionGuard를 만들어서, 여기까지는 동작합니다.

https://github.com/youngkiu/nestjs-kakaologin/blob/main/src/auth/session.serializer.ts

그런데, serializer에 breakpoint를 잡아도 호출되지 않습니다.
도움 부탁드려요.

 

 

express nodejs NestJS TypeORM

Answer 3

1

zerocho

https://github.com/nestjs/nest/issues/1365#issuecomment-494789315

이 사람처럼 Injectable로 만드셔야할 것 같습니다.

0

youngkiu0922

Subject: [PATCH] Add Injectable decorator on SessionSerializer
---
Index: src/auth/session.auth.guard.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/auth/session.auth.guard.ts b/src/auth/session.auth.guard.ts
--- a/src/auth/session.auth.guard.ts	(revision 31224c26135ddd183e9b5b6084a1c5cd30183273)
+++ b/src/auth/session.auth.guard.ts	(date 1674003411350)
@@ -5,6 +5,7 @@
 export class SessionAuthGuard extends AuthGuard('session') {
   async canActivate(context: ExecutionContext) {
     const request = context.switchToHttp().getRequest();
+    super.logIn(request);
     return this.validateRequest(request);
   }

이렇게 하고 해결되었습니다. 몇일 해맸는데 정말 감사합니다.

1

zerocho

아, 네네. extends 한 경우에는 중간에 들어있는 super같은 것 꼭 호출해주셔야 합니다.

0

youngkiu0922

@Injectable()을 추가해도,
serializeUser, deserializeUser 함수 안에서 breakpoint가 걸리지 않아요.

1

zerocho

@Injectable()

export class LocalSerializer extends PassportSerializer {

constructor(

private readonly authService: AuthService,

private readonly userRepository: UserRepository,

) {

super();

}

 

serializeUser(user: User, done: CallableFunction) {

done(null, user.id);

}

 

async deserializeUser(userId: string, done: CallableFunction) {

return await this.userRepository.findOneOrFail({ id: Number(userId) })

.then(user => done(null, user))

.catch(error => done(error));

}

}

이런 식으로 super까지 하셨나요?

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

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