【问题标题】:authentication through passport and mysql in nodejs通过nodejs中的passport和mysql进行身份验证
【发布时间】:2018-04-16 22:43:09
【问题描述】:

我正在尝试使用护照通过节点开发身份验证组件。我们使用的是关系数据库,即 mysql,但我在访问端点并实际验证用户时遇到问题。

我有 2 个文件:

app.js

var passport = require('./passport');

app.use(passport.initialize());
app.use(passport.session());

app.post('/login',
  passport.authenticate('local', { failureRedirect: '/error' }),
  function(req, res) {
    res.redirect('/success?username='+req.user.username);
});

和passport.js

var LocalStrategy = require('passport-local').Strategy;
var db = require('./db'); //where the db instance is exported

passport.serializeUser(function (user, done) {
    done(null, user.id);
});

// used to deserialize the user
passport.deserializeUser(function (id, done) {
    db.query("select * from user where id = " + id, function (err, rows) {
        done(err, rows[0]);
    });
});
passport.use(new LocalStrategy(
    function (username, password, done) {
        db.query("select * from user where username= " + username, function (err, rows) {
            done(err, rows[0]);
            console.log(rows)
        });
    }
));

根据文档,这是正确的做法,但显然我一定做错了,因为这是我尝试使用用户名和密码对象进行发布请求时收到的错误消息:

2:8888/login:1 选项http://localhost:8888/login 404(未找到) 本地主机/

:1 加载 http://localhost:8888/login 失败:预检响应包含无效的 HTTP 状态代码 404。

有什么建议吗?谢谢大家

【问题讨论】:

    标签: node.js passport.js passport-local


    【解决方案1】:

    初步看来,这是cors 的问题,因为您的快速应用程序没有响应预检请求。请安装npm模块cors

    npm install --save cors
    

    然后对 app.js 进行如下修改。

    var passport = require('./passport');
    //Added lines
    var cors = require('cors');
    app.use(cors());
    //Added lines end
    app.use(passport.initialize());
    app.use(passport.session());
    
    app.post('/login',
      passport.authenticate('local', { failureRedirect: '/error' }),
      function(req, res) {
        res.redirect('/success?username='+req.user.username);
    });
    

    还有其他方法,但我认为这是最简单的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2014-10-30
      • 2021-10-15
      相关资源
      最近更新 更多