node.js - 回调 Passport Sequelize 的 404 错误

标签 node.js passport.js sequelize.js

我的登录系统基于 Scotch-IO's tutorial

我已经将它转换为使用 Sequelize 而不是 Mongoose,现在回调 GET 请求给了我一个 404 错误。正确返回 token ,更新数据库,但浏览器看到 404。

我认为这可能与返回 then() promise 有关?

这是一种授权策略,而不是身份验证。 session 已经包含用户对象。

passport.use(new FacebookStrategy({

    clientID        : configAuth.facebookAuth.clientID,
    clientSecret    : configAuth.facebookAuth.clientSecret,
    callbackURL     : configAuth.facebookAuth.callbackURL,
    passReqToCallback : true

},
function(req, token, refreshToken, profile, done) {

    process.nextTick(function() {
        var user            = req.user;
        user.facebook_id    = profile.id;
        user.facebook_token = token;
        user.save().then(function() {
            return done(null, user)
        })
    })

}))

日志:
GET /connect/facebook 302 8ms - 478b
Executing (default): SELECT `id`, `local_email`, `local_password`, `facebook_id`, `facebook_token`, `facebook_email`, `facebook_name`, `twitter_id`, `twitter_token`, `twitter_displayName`, `twitter_username`, `google_id`, `google_token`, `google_email`, `google_name`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1 LIMIT 1;
Executing (default): UPDATE `Users` SET `facebook_token`='CAAGHyJfSyzcBAMu7nJxbQQXVbNxHNMUjRvGUkpbz12JjYm9x7daKherDWGgrAFiPStFsbBtwPDBDvcnxY0mFEJipqzRtRL9VTZAUildByZCyWzwrKNDWabZBJAHJvY3Xrs2YB06YPkjkbs8juOlJtLgyRZA8UjO3WfFyEtcA5XFmVB0G5gbPsh32Fl5E0WUOidOpJiCdr1fGLnWXG551',`updatedAt`='2015-06-17 11:36:08.383 +00:00' WHERE `id` = 1
GET /connect/facebook/callback?code=AQD7jEuKTIIXNzLRzgMxmsH4xmNl5vBA_pErNDi0kRPCK0Jaa0iPidQBSe4Zy_c_pPxknkVWKPfqB9JetfFJwUD6-URqlCvJkGLkLUahj8xaXZEfPONGNQ8sjUzC-xftCWqyujrD_ELROwRSLF7YKl0cMvVARwjx-8bHOt7mvIDlBUts3nWFHlTwlOa2qJ1V2NgFyo7z_-nDlcwXIpdIydDKMWvtpQaY1-oLPUXQhs5eGjQRUIC5OUzQZnrIMLfs4X9e8IDx4MxHR0H_CoAwyk9ce0gChOOkccO3NcjIovNdePaLIdtOKIeHxFy6ZfxKzKDD7mROtc-hCY-lCOAljpW7 404 773ms

最佳答案

我正在使用 passport.authorize 但没有从 req.account 而不是 req.user 中获取 token ,如 http://passportjs.org/docs/authorize 所述

尽管用户已经登录,但我实际上无法获得授权,并且已恢复调用身份验证。这工作正常。

关于node.js - 回调 Passport Sequelize 的 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30890484/

相关文章:

node.js - 如何在 Twitter Strategy、Passport JS 中传递数据?

javascript - 使用 Passport JS 的自定义策略 Oauth 身份验证

database-design - 在数据库设计中分离电视剧实体

javascript - React js Socket.io 和 State

javascript - 使用 node-addon-api 将 C 库回调传递给 NodeJS EventEmitter

node.js - 什么是身份验证策略

sequelize.js - 我正在使用 docker 和 sequelize 处理 nodejs 项目,我收到错误 : cannot read property toString of undefined

node.js - 部署到 Google App Engine 时出错

node.js - 创建 Sequelize 关系/关联

node.js - 如何初始化socket.io的实例?