我想要一个 Node.js 服务来验证我网站的用户。我怎样才能做到这一点?
我想使用简单的密码方法而不是 OpenID 来实现 Everyauth 身份验证。
我尝试了https://github.com/jimpick/everyauth-example-password并且它有效。
我想用数据库来存储。此脚本不使用数据库。我过去使用过 MySQL,所以我更喜欢它,但我也可以使用其他任何东西,比如 MongoDB。
我只想将数据库添加到我的脚本中。请帮忙。
我想要一个 Node.js 服务来验证我网站的用户。我怎样才能做到这一点?
我想使用简单的密码方法而不是 OpenID 来实现 Everyauth 身份验证。
我尝试了https://github.com/jimpick/everyauth-example-password并且它有效。
我想用数据库来存储。此脚本不使用数据库。我过去使用过 MySQL,所以我更喜欢它,但我也可以使用其他任何东西,比如 MongoDB。
我只想将数据库添加到我的脚本中。请帮忙。
您只需要修改.authenticate
方法。由于连接到数据库是(或应该是)异步操作,因此您需要添加promise
对象(请参阅everyauth 文档)。
假设您有一些 ORM,其中用户数据对应于user
对象username
和password
属性(在我的示例中,我将使用 mongoose 引擎),这可能是它的外观:
.authenticate( function (login, password) {
var promise = this.Promise(); /* setup promise object */
/* asynchrnously connect to DB and retrieve the data for authentication */
db.find({ username:login }, function(err, user) {
if (err)
return promise.fulfill([err]);
if ((!user) || (user.password != password))
return promise.fulfill(['Incorrect username or password!']);
promise.fulfill(user);
});
return promise; /* return promise object */
})
我没有测试它,但根据文档它应该可以工作。请记住,错误应该保存在数组中。
顺便说一句:如果你只使用密码方法,那么你知道,没有必要用大炮对付苍蝇。:) 编写自己的(不一定是完美的,但可以工作的)身份验证机制非常简单,如果您不知道如何做到这一点,您应该学习它。它将在未来受益,因为一般来说,身份验证和安全性在每个 Web 应用程序中都非常重要。