Nodejs:用户 Info/database 和身份验证(护照)

Nodejs: User Info/database and authentication (Passport)

我正在使用 Nodejs 创建一个用户登录系统。我有几个问题似乎无法找到答案(我使用的是使用 Passport 的本地策略)。

1) Creating/Storing 用户帐户

护照文件指定如下内容:

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

});

我不确定 "User" 的来源,因为我在尝试登录时遇到 "User is not defined" 错误。我假设我需要建立某种数据库,但我不确定该怎么做(文档和在线资源均未表明需要这样做)。 "User" 到底是什么?

我将如何制作 "create account" 东西并将用户帐户存储到(本地)数据库?

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

用户登录后,我需要获取与该帐户关联的一些特定数据,例如用户名。用户也会有一个 "ranking point" 所以我也需要一种方法来获得它。比方说,当用户在我拥有的游戏中 "wins" 时,用户获得 "ranking points" 并且我需要将其更新到特定帐户。我该怎么做?这是否也使用 Passport 完成(或者 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' } ] }
];

有关如何构建整个应用程序的示例,请参阅(已在 SO 此处回答:Comprehensive tutorial for nodejs passport local-strategy setup?):

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