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 |