2017-09-09 6 views
0

を与え、私はユーザー名とパスワードオブジェクトExpressでローカルパスポート認証戦略は、仮のヘッダ私のフロントエンドから

const login = data => (
    axios.post('http://localhost:3000/v1/user/login', data) 
    .then(response => response.data) 
    .catch((err) => { 
     throw err; 
    }) 
); 

とPOSTリクエストを送信するよ、私は/ルート/ V1 /ユーザー内/ログインルートを追加しました。 route.js

const controller = require('../../controllers/user.controller'); 
const router = express.Router(); 

router.route('/register') 
    .post(controller.register); 

router.route('/login') 
    .post(controller.login); 

module.exports = router; 

、ログインコントローラ方法:

exports.login = (req, res, next) => { 
    passport.authenticate('local', { 
    successRedirect: '/', 
    failureRedirect: '/404', 
    failureFlash: true }); 
}; 

と私のサーバーログに、私は以下を参照してください。

POST /v1/user/login - - ms - - 
OPTIONS /v1/user/login 204 1.886 ms - 0 

しかし、何も起こりません。

答えて

1

passport.authenticate()は、ミドルウェア(または、ミドルウェアを返す関数)ですが、通常の関数として使用しています(応答が返されないため、要求が停止します)。

これを試してみてください:

exports.login = passport.authenticate('local', { 
    successRedirect: '/', 
    failureRedirect: '/404', 
    failureFlash: true 
}); 
+0

が、これは物事を動かしビット、さらにその認証がまだいくつかの壊れた部分があっても(今私が手を 'エラー:session'にユーザーをシリアル化に失敗しました)のhttps:// githubの。 com/gkatsanos/isawyou/tree/master/server/src/config:私はpassport.js設定ファイルの戦略を抽象化し、express.jsでそれらを参照しようとしています(しかし、うまくいきませんでした) –

+0

btwどんなアイデアがここにあるのですか:https://github.com/danielfsousa/express-rest-es2017-boilerplate/blob/ea608afa04379f44821fb49bc4a16ef2d5f23d01/src/api/middlewares/auth.js#L47通常の機能は動作しますか? –

+0

@GeorgeKatsanosは、実際に呼び出され、 'req'、' res'、 'next'を引数として渡されることに注意してください。それは有効なユースケースです。あなたの 'express.js'ファイルが' passport.serializeUser/passport.deserializeUser'(あなたは 'passport.js'でそれを行いますが、私はあなたが'セッションにシリアル化できませんでした 'そのファイルは使用されていません)。参照してください。 – robertklep

関連する問題