Passport.js Execution
Passport.js Execution
我一直在网上看一些passport.js
教程,但还没有清楚地了解发生了什么。有人能帮我澄清下面的疑虑吗请先阅读底部的段落
因此,假设我正确设置了所有内容,这就是登录策略:
passport.use('login', new LocalStrategy({
passReqToCallback : true
},
function(req, username, password, done) {
// check in mongo if a user with username exists or not
User.findOne({ 'username' : username },
function(err, user) {
// In case of any error, return using the done method
if (err)
return done(err);
// Username does not exist, log error & redirect back
if (!user){
console.log('User Not Found with username '+username);
return done(null, false,
req.flash('message', 'User Not found.'));
}
// User exists but wrong password, log the error
if (!isValidPassword(user, password)){
console.log('Invalid Password');
return done(null, false,
req.flash('message', 'Invalid Password'));
}
// User and password both match, return user from
// done method which will be treated like success
return done(null, user);
}
);
}));
现在,在我的app.js(服务器)中,我有一条路线:
/* Handle Login POST */
router.post('/login', passport.authenticate('login', {
successRedirect: '/home',
failureRedirect: '/',
failureFlash : true
}));
现在在我的AJS文件中:
app.controller('loginController', function($scope) {
var user = $resource('/login');
$scope.createUser = function() {
var User = new user();
User.username = $scope.usernameVar;
User.password = $scope.passwordVar;
User.save();
}
});
请先阅读(而不是先阅读代码):
因此,当用户单击登录页面上的登录按钮时,上面的createUser
函数就会运行(在我的AJS文件中)。然后,我为端点'/login'
创建一个资源对象,当我在上面调用save时,它将在我的服务器(app.js)上运行该'/login'
端点的路由。然后,在我的server中,它将运行passport中间件的passport.authenticate('login', ...
。
现在我的问题是:
在passport.use('login'...
策略中,变量req, username, and password
的do值来自该策略的回调。我必须明确地传递用户在我前端的文本字段中输入的用户名和密码吗。就像我在AJS视图中为这两个文本字段提供了双向数据绑定一样。如果是,我该如何传递这些用户名和密码值?
AJS控制器User.username = $scope.usernameVar;
和User.password = $scope.passwordVar;
中的这两行是否将usernameVar和passwordVar值附加到服务器上req
对象的路由'/login'
?
如果您有一个带有操作的表单要发布到您的路径/login
,并且输入名称标记在username
和password
之后,则提交按钮会将值传递到您的护照代码中。
请查看文档中的表单。
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- 如何更改<svg>标记为<img>用js标记
- 如何使用 node.js 比较两个 json 数组
- Passport.js Execution
- JS, how to stop process execution if it's beeing execute
- backbone.js block route execution
- Socket.IO/Node.JS execution