인프런 커뮤니티 질문&답변
질문입니다.
해결된 질문
작성
·
398
2
안녕하세요. 강의를 듣고 하는 도중에 잘 안되어 질문드립니다.
{
"success": true,
"data": "login"
}
이렇게 나올까요..? 유효성검사도 안 됩니다.
(이메일을 반값으로 요청해도 위와 같이 나옵니다.
회원가입은 유효성검사 전부 잘 됩니다.)
컨트롤러 부분에서 jwtLogin 함수가 안불러지는거 같은데
어떤 부분이 문제일까요??
깃허브에서 코드 따와서 했는데도 계속 data가 토큰이 안 나오고
login만 나오네요.. ㅠㅠ 혼자 찾아보려고 했는데 안 되어서 질문드립니다.
import { Injectable, UnauthorizedException } from '@nestjs/common';
import { CatsRepository } from 'src/cats/cats.repository';
import * as bcrypt from 'bcrypt';
import { JwtService } from '@nestjs/jwt';
import { LoginRequestDto } from './dto/login.request.dto';
@Injectable()
export class AuthService {
constructor(
private readonly catsRepository: CatsRepository,
private jwtService: JwtService,
) {}
async jwtLogIn(data: LoginRequestDto) {
const { email, password } = data;
//* 해당하는 email이 있는지
const cat = await this.catsRepository.findCatByEmail(email);
if (!cat) {
throw new UnauthorizedException('이메일과 비밀번호를 확인해주세요.');
}
//* password가 일치한지
const isPasswordValidated: boolean = await bcrypt.compare(
password,
cat.password,
);
if (!isPasswordValidated) {
throw new UnauthorizedException('이메일과 비밀번호를 확인해주세요.');
}
const payload = { email: email, sub: cat.id };
return {
token: this.jwtService.sign(payload),
};
}
}
답변 5
1
0
0
jwb449730
질문자
죄송합니다...
그런데 코드를 제거 해도 같은 현상이 발생합니다...
회원가입 같은 경우는
이와 같이 잘 나오는데 왜 login만
{
"success": true,
"data": "login"
}
이렇게 값이 나오는지 도대체 모르겠네요... ㅠㅠ
0
윤상석
지식공유자
안녕하세요!
코드는 분명 문제가 없는데 터무니 없게 출력이 되는 경우에는 vscode에서 파일 등을 import할때 다른 폴더의 파일을 import할 경우에 발생할 수 있습니다!
node_modules를 지우고 다시 실행해 보시고 프로젝트 폴더 자체를 다른 경로로 옮겨서 다시 실행해 보세요!
이렇게 하셨는데도 잘 안되고 도움이 필요하시면 전체 프로젝트 깃허브 주소를 보내주시면 추가적인 도움을 드리겠습니다.
jwb449730
질문자
안녕하세요. 답변 감사합니다.
알려주신 대로 폴더를 옮기고 node_modules 지우고 다시 했는데도 로그인할 때 토큰이 생길지 않습니다.
https://github.com/WooBinJang/Cats_Project_NestJS
혹시 괜찮다면 깃허브 코드 확인 부탁드립니다... ㅠㅠ





.png?w=112)


다행이네요 ㅎㅎ
보통 node_modules가 꼬이거나 dist 폴더(컴파일 결과물들) 문제로 이런 이슈가 많이 발생합니다. 스트레스 많이 받으셨을텐데 화이팅입니다!