passport-local-mongoose 모듈은 passport를 이용한 local로그인을 간편하게 해주는 Mongoose 플러그인이다.
공식 문서 : github.com/saintedlama/passport-local-mongoose#api-documentation
(이 글은 위의 공식 문서를 번역한 것입니다.)
1. 설치하기
Passport-local-mongoose를 사용하기 위해서는, passport와 mongoose도 설치되어 있어야 한다.
2. 사용하기
1. Passport-Local Mongoose 플러그인하기
우선 User 스키마에 Passport-Local Mongoose를 플러그인 해야한다. User을 어떻게 디자인하든지는 상관 없다. Passport-Local Mongooes가 User에 username, hash, 그리고 salt 필드를 추가한다. 각각 username, 해쉬된 패스워드, salt값이 저장된다.
그리고 Passport-Local Mongoose는 스키마에 몇몇 메소드도 추가한다.
2. Passport/Passport-Local 설정하기
Passport와 Passport-Local을 우선 설정해야 한다. 참고: ibdev.tistory.com/3, www.passportjs.org/docs/
위의 링크를 참고해서 Passport/Passport-Local 설정이 완료되었을 때,
Passport-Local Mongoose는 LocalStrategy와 serializeUser/deserializeUser 함수를 실행할 때 도움을 준다.
위의 코드를 사용할 때는 mongodb에 mongoose가 연결되어있는지 확인해야 한다.
<Passport/Passport-Local 설정 간소화하기>
passport-local-mongoose에는 'createStrategy'라는 helper method가 스키마에 추가되었다.
User.authenticate( ) 대신 User.createStrategy( )를 쓰는 이유:
기존의 User.authenticate( )는 예를들어 usernameField의 이름을 username이 아니라 email으로 할 때 별도의 코드가 필요한데, User.createStrategy( )를 쓰게되면 별도의 코드를 작성할 필요 없이 자동으로 세팅이 된다.
<async/await>
5.0.0버전부터 passport-local-mongoose에서 async/await을 사용할 수 있게 되었다. serializeUser과 deserializeUser를 제외한 모든 인스턴스와 정적 메소드에서 사용가능하다.
<option>
passport-local mongoose플러그인을 실행시킬 때 추가적인 옵션을 지정할 수 있다.
3. API에 관하여
<여러 instance 메서드들>
setPassword, changePassword, authenticate, resetAttempts 등 여러 메서드가 있다.
https://www.npmjs.com/package/passport-local-mongoose 참고하기
...
<Callback Arguments>
...
<Error Handling>
...
<정적 메서드>
모델 생성자에 쓸 수 있다. 예를들어, createStrategy를 사용할 때는
정적 메서드 종류
- authenticate( ) : Passport의 LocalStrategy에서 사용되는 함수를 생성한다.
- serializeUser( ) : Passport에서 세션으로 유저를 serialize하기위해 사용되는 함수를 생성한다
- deserializeUser( ) : Passport에서 세션으로 유저를deserialize하기위해 사용되는 함수를 생성한다
- register(user, password, cb): 주어진 패스워드로 새로운 유저 인스턴스를 등록할 때 편리한 메서드. username이 unique한지 확인해야한다. 참고: https://github.com/saintedlama/passport-local-mongoose/tree/master/examples/login
- findByUsername( ) : unique한 username으로 어떤 유저 인스턴스를 찾을 때 편리한 메서드
- createStrategy( ) : 이미 설정완료 된 LocalStrategy인스턴스를 만들어준다
'개발' 카테고리의 다른 글
공인 IP, 사설 IP (0) | 2021.05.01 |
---|---|
도커 사용법 (0) | 2021.04.30 |
cURL 명령어 (0) | 2021.04.06 |
[node.js] passport 모듈 사용법 (0) | 2021.04.06 |
[node.js] 서버 개발 시 쓰이는 npm 모듈들 (0) | 2021.04.04 |