1

我目前正在开发一个节点 js 应用程序,我正在尝试使用 Monggose-Auth 创建用户身份验证过程。我已经完成了多个教程示例以及我能找到的关于如何使用 Mongoose-Auth 的所有指南,但是我遇到了困难。

我的基本密码身份验证似乎可以工作并重定向到正确的位置并保留用户等。我的问题是,在将我的需要登录功能添加到用户个人资料页面时,我遇到了一个问题,即我只是被重定向回登录页。这似乎是因为会话以某种方式丢失了但是当我查看我的everyauth调试输出时(mongoose-auth建立在everyauth之上)我看到以下内容

开始步骤 - displayLogin

...完成的步骤

获取 /favicon.ico

开始步骤 - extractLoginPassword

...完成的步骤

开始步骤 - 验证

...完成的步骤

开始步骤——interpretUserOrErrors

...完成的步骤

开始步骤 - getSession

...完成的步骤

开始步骤 - addToSession

...完成的步骤

开始步骤 - respondToLoginSucceed

...完成的步骤

开始步骤 - respondToLoginFail

...完成的步骤

获取/用户/个人资料

开始步骤 - displayLogin

...完成的步骤

获取 /favicon.ico

我的应用程序可以在这里找到 --> https://github.com/Themitchell/Node-Express-Connect-Mongoose-Auth-Stack <-- 如果您想亲自查看,应该可以快速设置!它使用正确的 package.json 等,所以只需运行

npm install 然后节点 server.js

我想从其他地方举一个例子来尝试和建立,但我想了解问题是什么,而不是在我还不了解的东西之上破解!

据我所知,mongoose-auth 不应该坚持会话本身,而是我必须通过连接来做到这一点,例如我认为我做得正确。

在项目中查看的文件可能在

配置/环境.js

应用程序/模型/user.js

最后

config/routes.js 有 requiresLogin 功能(我现在只知道它在这里。

提前感谢您的帮助:)

4

1 回答 1

0

这不是一个完整的答案,但您可以看到我如何在我的项目中处理 Auth。我使用 Mongoose、Express、Passport + Passport Local 来处理 Auth 和 connect-mongodb 来保持会话(很难让整个堆栈正常工作)。优点是即使在服务器重新启动之间也会检索会话。

链接到主要文件:

重要的是:

  • Auth.js 将帮助您在 Mongoose 中调整 Passport Auth。
  • 将 connect-db 设置为持久会话并不容易,但它非常舒服。

看看我是如何设置 connect-db 的(最好看的是 LoastAndFound.js 或 .coffee):

app.use(express.session({
    secret: 'awesome unicorns',
    maxAge: new Date(Date.now() + 3600000),
    store: new common.mongoStore({
        db: Data.mongoose.connection.db
    }, function(err) {
        return console.log(err || 'connect-mongodb setup ok');
    })
 }));

注意:请原谅我的代码不完美,需要更多评论并且没有经过测试。

于 2012-04-19T16:42:00.493 回答