【发布时间】:2018-10-06 18:56:40
【问题描述】:
以下 3 段代码取自我从互联网上下载的一个工作项目:
文件:./routes.js
// ...
var passport = require('passport');
var requireLoginLocal = passport.authenticate('local', { session: false });
var authController = require('./controllers/authController');
// ...
module.exports = function(app) {
// ...
authRoutes.post('/login/local', requireLoginLocal, authController.login);
// ...
}
文件:./config/passport.js
// ...
var LocalStrategy = require('passport-local').Strategy;
// ...
module.exports = function(passport) {
passport.use(new LocalStrategy({
usernameField: 'email' /* changing default */
},
function(email, password, done) {
email = email.toLowerCase();
User.findOne({
'email': email
},
function(err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, { error: 'Login failed. Please try again.' });
}
user.comparePassword(password, function(err, isMatch) {
if (err) {
return done(err);
}
if (!isMatch) {
return done(null, false, { error: 'Login failed. Please try again.' });
}
return done(null, user);
});
}
);
}
));
};
文件:./controllers/authController.js
// ...
exports.login = function(req, res, next) {
var userInfo = getUserInfo(req.user);
res.status(200).json({
token: 'JWT ' + generateToken(userInfo),
user: userInfo
});
}
// ...
我有以下问题:
1-上档:./routes.js,上线:
authRoutes.post('/login/local', requireLoginLocal, authController.login);
如何将数据从第二个参数传递到第三个参数?
2-在文件上:./config/passport.js,这些返回值对上行从第二个到第三个参数传递的值有何影响?
3- 在文件上:./controllers/authController.js,在函数上:exports.login,那里没有返回任何内容,因此,这将如何影响从第三个参数传递的值和一个可能的第四个参数像上面那样的假设线?
【问题讨论】:
-
凯文,我的一些问题有答案吗?谢谢!
-
我尽我所能来回答我的问题。不过,谢谢。
-
你应该坚持一个问题。并且永远不要在问题得到回答后对其添加更多要求。
-
将其他问题移至此处:stackoverflow.com/questions/50048669/…
标签: javascript angularjs node.js express passport.js