본문 바로가기
Backend

[Passport.js] Local Strategy에서 username 대신 userId 사용하기

by hyeok1235 2024. 7. 15.

Passport.js는 Node.js 애플리케이션에서 인증을 간편하게 구현할 수 있는 미들웨어입니다. Passport.js에서 지원하는 Local Strategy의 기본 설정값은 username과 password입니다. 따라서 username이나 password가 아닌 다른 이름의 속성을 사용하고자 한다면(ex. userId, email), 따로 지정을 해줘야 합니다.

 

다음은 간단한 예시입니다. 

const LocalStrategy = require('passport-local').Strategy;

class CustomStrategy extends LocalStrategy {
  constructor(private authService: AuthService) {
    super({ usernameField: 'userId' }, async (userId, password, done) => {
      try {
        const user = await this.authService.validateUser(userId, password);
        if (!user) {
          return done(null, false, { message: 'Invalid credentials.' });
        }
        return done(null, user);
      } catch (error) {
        return done(error);
      }
    });
  }
}

 

constructor 내부에 usernameField에 'userId'라는 추가적인 설정을 해야

{ userId: 'user1', password: 'pass1'}

이와 같은 데이터로도 로그인 기능을 구현할 수 있습니다. 

728x90
반응형

'Backend' 카테고리의 다른 글

[Swagger] Default 값, 예시 값 설정하기  (0) 2024.07.10
JWT  (1) 2024.01.04
HTTP 응답 상태 코드(Status Code)  (1) 2024.01.04
API(Application Programming Interface)  (0) 2022.11.12