私のプロジェクトでは、認証にPassport jsを使用しています。サーバー側で私はExpress jsを使用しています。 app.js
で私は、パスポートのJSのための構成を有し、コードは次のとおりです。パスポートjs設定を共通ファイルに配置する方法
passport.use(new Strategy({
passReqToCallback: true
},
function (req, username, password, done) {
req.models.users.find({ 'user_id' : username }, function (err, user) {
if (err) { return done(err); }
if (!user[0]) {
console.log("The username is Incorrect");
return done(null, false, { message: 'Incorrect username.' });
}
if (user[0].default_password!=password) {
console.log("The Password is Incorrect");
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
と、この後、私は、このようなクライアントの要求を検証しています:すべてが正常に動作している
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/');
});
ここティル。 今私はので、私はこのようなapp.js
でルートのパスを与えているのルートフォルダにこのルートapp.post('/login',...
を配置する:
var users = require('./routes/users/users');
app.use('/users', users);
私の問題がある:このユーザーのルート・ファイル内の私はしないでください私はパスポートの設定を持っているので、私は共通のファイルにパスポートの設定を置いて再利用することを考えていますが、私はそれをやる方法はわかりません。あなたは何か考えているなら助けてください。ありがとう。
おかげで、あなたは '// res.localsでこれを設定するif(!req.user){ リターンres.redirect( '/?' + qs.stringify(の意義あるものを私に伝えることができます{ 'r':req.originalUrl })); } 'それは何をするのでしょうか? –
'auth.js'にパスポートの設定を書くべきですか?' app.js'に置くことができますか? –
これは、ログイン後にユーザーを目的のページにリダイレクトする単なる方法です。あなたのルートの後ろにマウントする 'login.js'ファイルにパスポートのものを入れることができます –