• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

jwt 토큰 생성중에 질문있습니다

22.04.29 23:10 작성 조회수 163

0

안녕하세요. 이렇게 질 좋은 강의를 무료로 열어주신 것에 먼저 감사드립니다.

제가 아직 잘 못따라가서인지 모르겠지만

현재 controller, service, repository 세부분을 나누어서 역할을 구분짓고 있습니다

controller에선 엔드포인트 설정해주고 

service에선 목적에 맞게 값을 리턴해서 controller에 올려주고

repository에선 DB와 교환이 발생하는 부분은 여기서 관리하고 있습니다

영상에서는 service에서 토큰을 생성후에 객체안에 담아서 accessToken을 넣어주고 있습니다

하지만 저는 repository에서 토큰을 생성후에 토큰을 담아주고 싶은데 

Cannot read properties of undefined (reading 'sign')

오류가 나옵니다

구글링을 해보았지만 모듈에 있는 import부분을 건드리라는 말밖에 없는것 같아 질문을 드립니다

현재 제가 작성한 코드는

영상과 전부 같게 작성했고 단지 jwtService:JwtService 선언한 부분만 추가해 주었습니다

왜 sign부분을 읽지 못하는걸까요..? 너무 궁금합니다

* 영상대로 진행하면 제대로 토큰값을 반환합니다! *

import { ConflictException, InternalServerErrorException, NotFoundException, UnauthorizedException } from "@nestjs/common";
import { EntityRepository, Repository } from "typeorm";
import { CreateUserDto, UserLoginDto } from "./dto/user.dto";
import { UserStatus } from "./user-status-validation";
import { User } from "./user.entity";
import * as bcrypt from 'bcryptjs'
import { JwtService } from "@nestjs/jwt";
 
@EntityRepository(User)
export class UserRepository extends Repository<User> {
private jwtService: JwtService;
 
async signIn(userLoginDto:UserLoginDto): Promise<{accessToken:string}>{
const { userid, password } = userLoginDto
const user = await this.findOne({ userid })

if(user && (await bcrypt.compare(password, user.password ))){
const payload={userid}
const accessToken= await this.jwtService.sign(payload)
return {accessToken:accessToken}
} else {
throw new UnauthorizedException('login failed')
}
}
}

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!