2017-12-12 18 views
0

저는 Google OAuth에 Passport를 사용하는 방법을 보여주는 동영상 강의를 진행하고 있으며 결국에는 "Welp, 이제 모든 전략을 사용할 수 있습니다! 즐겁게 보내십시오!"라고 말합니다. 신체를 패스포트 - 로컬로 전달하는 방법은 무엇입니까?

그래서 나는과 같이 여권 로컬 구현하기 위해 노력 :

// passport.js 
// ... 
passport.use(
    new LocalStrategy((username, password, done) => { 
    User 
     .findOne({ username, password }) 
     .then(userFromDB => { 
     if (userFromDB) { 
      done(null, userFromDB) // No errs so return the user from db 
     } else { 
      new User({ 
      username, 
      password, 
      }) 
      .save() // Add user to our db 
      .then(userFromDB => done(null, userFromDB)) // return user from db 
     } 
     }) 
    }) 
) 
// ... 

// routes.js 
// ... 
app.post(`/auth/local`, 
    passport.authenticate(`local`, { 
    failureRedirect: `/api/v1/current_user`, 
    }), 
    (req, res) => res.send(`It worked`) 
) 
// ... 

내 질문 new LocalStrategy((username, password, done) ...usernamepassword 나올까요 어떻게?

이것은 Mongo가있는 Express 서버입니다.

답변

0
app.post('/login', 
     passport.authenticate('local', { failureRedirect: '/login' }), 
     function(req, res) { 
     res.redirect('/'); 
     }); 
여기

당신이 다음 passport.authenticate('local' 가 자동으로 사용자 이름과 암호

passport.use(
    new LocalStrategy((username, password, done) => { 
    User 
     .findOne({ username, password }) 
     .then(userFromDB => { 
     if (userFromDB) { 
      done(null, userFromDB) // No errs so return the user from db 
     } else { 
      new User({ 
      username, 
      password, 
      }) 
      .save() // Add user to our db 
      .then(userFromDB => done(null, userFromDB)) // return user from db 
     } 
     }) 
    }) 
) 
+0

예를 보낼 필요가 전단 측에서 노선 로그인 .IN 기능 passport.use(new LocalStrategy(를 호출 경로 /login 공격하지만, _how_ "프런트 엔드 측에서 사용자 이름과 암호를 보내야합니까?" – corysimmons

+0

테스트 목적으로 [postman] (https://www.getpostman.com/)에서 사용자 이름과 비밀번호를 입력 할 수 있습니다. 예 : https://sitecore-community.github.io/docs/images/SitecoreServicesClient/Postman_login.png –

+0

어, 작동하지 않습니다 ... 괜찮습니다. 나는 다른 시간에 그것과 싸울거야 ... – corysimmons