【发布时间】:2017-08-17 07:18:52
【问题描述】:
我正在尝试使用 localstrategy 实现 passport.js,但无法重定向到成功路线。每当我单击提交按钮时,它总是将我重定向到失败路线。为什么会发生这种情况,我应该怎么做?
表格代码:
<form action="/login" method="post">
<div>
<label>Username:</label>
<input type="text" name="username"/>
</div>
<div>
<label>Password:</label>
<input type="password" name="password"/>
</div>
<div>
<input type="submit" value="Log In"/>
</div>
</form>
app.js 文件代码:
var express = require('express');
var app = express();
var connection = require('express-myconnection');
var mysql = require('mysql');
var customers = require('./routes/routes');
var bodyParser = require('body-parser');
var passport = require('passport')
var flash = require('connect-flash')
var LocalStrategy = require('passport-local').Strategy;
var urlencodedParser = bodyParser.urlencoded({
extended: false
})
app.set('view engine', 'ejs');
app.use(
connection(mysql, {
host: 'localhost',
user: 'root',
password: '',
database: 'nodejs'
}, 'request')
);
app.get('/', customers.form);
passport.use('local', new LocalStrategy(
function(username, done) {
console.log('abc');
customers.checkStatus(username, function (err, user) {
if (err) throw err;
if (!user) {
return done(null, false, {message: 'Unknown User'});
}
});
}));
app.post('/login',
passport.authenticate('local', { successRedirect: '/success',
failureRedirect: '/' }),
function (req,res) {
console.log('tets');
res.redirect('/');
}
);
var server = app.listen(8080, function() {
var host = server.address().address;
var port = server.address().port;
console.log("Example app listening at http://%s:%s", host, port);
});
route.js 文件代码:
exports.form = function(req,res){
res.render('form', {
page_title: "Login Form"
});
};
exports.success = function (req, res) {
res.send('wow');
};
exports.checkStatus = function (req, res, username) {
req.getConnection(function(err, connection) {
connection.query('select * from login where username = ?',
[username], function(err, rows) {
});
});
}
【问题讨论】:
-
customers.form 是什么意思?它包含什么?
-
我在顶部创建了客户作为变量,并在其中包含了路由文件的路由,其中声明了 form() 方法
-
把你的问题分成几块并定义问题的根源。
-
Ayesha,它甚至没有进入 passport.use 函数,我正在尝试 console.log 但它没有进入那个函数。
-
其实我只是想用passport.js创建简单的登录功能。我正在运行此代码,并在按下提交按钮时将我重定向失败重定向。我认为它甚至没有进入 passport.js 函数
标签: node.js passport.js