로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.
151
작성한 질문수 16
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
//저장된 사용자 정보에 접근 가능
export const User = createParamDecorator(
(data: unknown, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
console.log('사용자', request.user.id);
return request.user;
},
);위에있는것은 로그인을 하게되면 유저의 아이디값을 가져오는데
로그인가드쪽을 보면 여기서는 자꾸 false값이 나옵니다.
다른쪽 로직도 작업하신 코드 그대로 사용을 했는데 왜자꾸 false값만 나올까요....
import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
import { Request } from 'express';
import { Observable } from 'rxjs';
@Injectable()
export class LoggedInGuard implements CanActivate {
canActivate(
context: ExecutionContext,
): boolean | Promise<boolean> | Observable<boolean> {
const request = context.switchToHttp().getRequest() as Request;
console.log('로그인햇니?????????', request.isAuthenticated());
return request.isAuthenticated();
}
}
로그인 유지가 안되는거로 보이기는 하는데 해결법이 있을까요?
답변 2
0
먼저 서버가 재시작돼서 로그인이 풀리는 게 아닌지 먼저 확인해보시고요.
그게 아니라면 익스프레스 세션/패스포트 설정 문제로 보이는데요. 해당 부분 소스코드 확인해보셔야할 것 같습니다
0
안녕하세요, 인프런 AI 인턴입니다.
GI P님께서 겪고 계신 문제는 LoggedInGuard를 활용하여 인증 여부를 확인할 때 request.isAuthenticated() 함수가 항상 false를 반환하는 것 같습니다. 이 문제는 주로 세션이 제대로 설정되지 않았거나, 인증 관련 미들웨어가 잘못 설정되면서 발생할 수 있습니다. 아래 몇 가지 체크포인트를 확인해보시기 바랍니다:
세션 설정 확인:
express-session라이브러리를 사용하여 세션을 설정했는지 확인해보세요.main.ts혹은 서버 초기화 파일에서 다음과 같이 설정해야 합니다.app.use( session({ secret: 'your-secret-key', resave: false, saveUninitialized: false, }), );Passport 미들웨어 설정:
passport.initialize()와passport.session()을 사용하여 Passport를 초기화했는지 확인하세요.app.use(passport.initialize()); app.use(passport.session());로그인 절차 확인: 사용자가 로그인할 때,
passport.authenticate()함수가 제대로 호출되어 세션이 설정되는지 확인하세요.UserSerializer 및 Deserializer 확인:
serializeUser와deserializeUser에서 사용자의 정보를 세션에 저장하고 설정하는 부분이 올바르게 되어 있는지 확인하세요.
이와 유사한 질문과 해결 방법은 아래 링크에서 자세히 살펴보실 수 있습니다:
- AuthGaurd, canActivate관련에서는 canActivate와 관련된 401 에러와 관련된 논의를 확인할 수 있습니다.
- LocalAuthGuard 를 사용하고 있는데요, 권한 에러가 뜹니다….에서도 유사한 상황에 대한 질문과 해결 방법에 대한 토론을 찾을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
강의자료는 어디서 다운받나요?
0
110
3
질문 있습니다.
0
294
3
(강의 5:42 질문) providers를 통한 여러 개의 인스턴스 생성 & exports 통한 싱글톤 생성
0
154
2
코드 편집기 확장 프로그램
0
209
2
(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?
0
143
2
(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문
0
166
3
로그인방법이 고민됩니다.
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
로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??
0
446
1
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





