我正试图以这种方式使用passport local设置登录页面,但它不起作用:
节点服务器端:
// mongoose
var User = mongoose.model('User', userSchema);
User.find({}).exec(function(err, collection){
if(collection.length === 0) {
User.create({identifiant: '123', motDePasse: '123'});
}
});
// passport-local
passport.use(new LocalStrategy(
function(identifiant, motDePasse, done) {
console.log(identifiant); // It's not logging
User.findOne({identifiant:identifiant}).exec(function(err, user) {
if(user) {
return done(null, user);
} else {
return done(null, false);
}
})
}
));
passport.serializeUser(function(user, done) {
if(user) {
done(null, user._id);
}
});
passport.deserializeUser(function(id, done) {
User.findOne({_id:id}).exec(function(err, user) {
if(user) {
return done(null, user);
} else {
return done(null, false);
}
})
});
// route
app.post('/connexion', function(req, res, next){
var auth = passport.authenticate('local', function(err, user) {
if(err) {return next(err);}
if(!user) {res.send({success: false});}
req.logIn(user, function(err) {
if(err) {return next(err);}
res.send({success: true, user: user});
})
});
auth(req, res, next);
});
角度客户端:
app.controller('uAsideLoginCtrl', function($scope, $http, uIdentity, uNotifier){
$scope.identity = uIdentity;
$scope.signin = function(identifiant, motDePasse){
$http.post('/connexion', {identifiant: identifiant, motDePasse: motDePasse}).then(function(res){
if(res.data.success) {
uIdentity.currentUser = res.data.user;
uNotifier.success("Vous êtes maintenant connecté!");
} else {
uNotifier.error("L'identifiant ou le mot-de-passe est incorrecte.");
}
});
};
});
下面是mongoDB的用户行:
{"_id": ObjectId("53df7b3b769827786b32dafe"),"标识符":"123","motDePasse":"123","__v": 0}
我想它来自本地战略。我不知道console.log.结果
有什么好主意吗?
请问怎么了?
问题不在您显示的代码中。我的猜测是,您请求/connexion
(我假设它是带有POST
方法的常规表单
)时使用的参数命名错误,因为您设置了自定义字段名。
从护照的官方文件:
默认情况下,LocalStrategy希望在名为username和password的参数中找到凭据。如果您的站点希望以不同的方式命名这些字段,则可以使用选项更改默认值。
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'passwd'
},
function(username, password, done) {
// ...
}
));
但是你的名字听起来很奇怪,你昨天不是问了一个类似的问题吗?我们帮了你,然后你删除了你的帖子?
现在,我正在尝试使用log4j2将所有具有信息级别或更高级别(警告、错误和致命)的内容记录到我的服务器,并将所有具有信息级别的内容记录到我的控制台。我能够把事情记录到我的控制台上,但是,我在正确地将正确的级别记录到服务器上时遇到了问题。 以下是我迄今为止尝试过的: Java XML 上面的代码没有输出我想要的,这是有INFO级别输出到控制台和INFO级别和向上输出到服务器。 相反,我能够输出:一切
我需要你的帮助在这里创建一个虚拟主机在wampserver。在办公室里,我可以创建一个虚拟主机,但是当我试图在笔记本电脑上创建时,它不起作用。我仍然不知道出了什么问题。这是我做的。 > E:\Subversion\chelle。wpblog。本地的 我编辑主机文件 > 127.0.0.1chelle.wpblog.local 接下来是我在Apache中启用虚拟主机 > C:\wamp\bin\ap
说明 当前文档是在H5 JS SDK的设置代理服务器基础之上进行的补充,请先查看H5 JS SDK中设置代理服务器的相关配置,根据H5 JS SDK配置完成之后,再继续根据当前文档进行配置。 Nginx代理服务器配置的补充 配置HTTPS 注意:应替换整个[xxx]形式,包括[]。 server { listen 443 ssl; server_name [域名];
为解决浏览器中请求不同域名下的Linkface公有云接口,需要通过代理服务器进行代理转发。在代理服务器中我们可以加API_ID和API_SECRET包含在请求链接中,从而提高了客户账户的安全性。 由于在实际部署的时候,代理服务器和部署H5的服务器往往不会同域,所以用户可以在代理服务器上开启CORS。 也就是说,设置代理服务器主要是为了提高安全性以及解决前端js sdk跨域问题。 需要代理的接口列表
嗨,我已经在CentOS 7上安装了wine(版本wine-3.0.2)来运行我的。vbs文件。但在运行时,它得到了以下错误。 你能帮我修一下这个吗。我对此不太了解
使用以下命令登录 ftp服务器: lftp ftp://用户名[:密码]@服务器地址[:端口] #标准方式,推荐 lftp 用户名[:密码]@服务器地址[:端口] lftp 服务器地址 [-p 端口] -u 用户名[,密码] lftp 服务器地址[:端口] -u 用户名[,密码] 如果不指定端口,默认 21 如果不在命令中使用明文输入密码,连接时会询问密码(推荐) 可以使用“书签”收藏服务器