2017-12-12 2 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

関連する問題