Nodejs:用户信息/数据库和authentication(Passport)

我正在用Nodejs创build一个用户login系统。 我有几个问题,我似乎无法find答案(我正在使用本地策略使用护照)。

1)创build/存储用户帐户

护照文件指定了如下内容:

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); }); 

});

我不确定“用户”来自何处,因为我在尝试login时遇到“用户未定义”错误。 我假设我需要build立某种types的数据库,但我不知道该怎么做(文档和在线资源都不需要这样做)。 什么是“用户”?

我将如何去做一个“创build帐户”的事情,并将用户帐户存储到(本地)数据库?

2)之后获取用户信息/存储用户信息

用户login后,我需要获取与该帐户关联的特定数据,例如用户名。 用户也将有一个“排名点”,所以我需要一种方式来获得这一点。 当用户在我拥有的游戏中“胜出”时,用户获得“排名积分”,我也需要将其更新到特定的帐户。 我将如何做到这一点? 这是否也使用Passport完成(或Passport仅用于身份validation?)

       

网上收集的解决方案 "Nodejs:用户信息/数据库和authentication(Passport)"

对于这里的本地策略示例: 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' } ] } ]; 

有关如何构build整个应用程序的示例,请参阅(这里已经解答了这个问题: nodejs passport local-strategy setup的综合教程 ):

https://scotch.io/tutorials/easy-node-authentication-setup-and-local