Nodejs:用户信息/数据库和身份验证(Passport)

时间:2016-03-14 14:18:53

标签: node.js authentication passport.js user-accounts passport-local

我正在创建一个使用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用于身份验证吗?)

1 个答案:

答案 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