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
我正在使用 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