我正在创建一个使用Nodejs的用户登录系统。我有几个问题似乎无法找到答案(我使用Passport使用本地策略)。
1)创建/存储用户帐户
护照文件指明如下:
User.findOne({username: username }, function(err, user){
if(err){return done(err);}
if(!user){
return done(null, false, {message: "Incorrect Username."});
}
if(!user.validPassword(password)){
return done(null, false, {message: 'Incorrect Password.'});
}
return done(null, user);
});
或
passport.deserializeUser(function(id, done){
User.findById(id, function(err,user){
done(err, user);
});
});
我不知道"用户"因为我得到了一个"用户没有被定义"我尝试登录时出错。我假设我需要创建某种类型的数据库,但我不确定如何去做(文档和在线资源都没有表明需要这样做)。究竟是什么"用户"?
我如何创建一个"创建帐户"将用户帐户存储到(本地)数据库?
2)获取用户信息/之后存储用户信息
用户登录后,我需要获取与该帐户关联的一些特定数据,例如用户名。用户还将拥有一个"排名点"所以我需要一种方法来获得它。当用户说,"胜利"在我拥有的游戏中,用户获得"排名积分"我还需要将其更新到特定帐户。我该怎么做?这是使用Passport完成的(或者只是Passport用于身份验证吗?)
答案 0 :(得分:0)
对于本地策略示例: https://github.com/passport/express-4.x-local-example
用户在users.js文件中进行了硬编码:
var records = [
{ id: 1, username: 'jack', password: 'secret', displayName: 'Jack', emails: [ { value: 'jack@example.com' } ] }
, { id: 2, username: 'jill', password: 'birthday', displayName: 'Jill', emails: [ { value: 'jill@example.com' } ] }
];
有关如何构建整个应用程序的示例,请参阅(此处已在SO上回答:Comprehensive tutorial for nodejs passport local-strategy setup?):
https://scotch.io/tutorials/easy-node-authentication-setup-and-local