Non*_*yck 3 database authentication node.js express passport.js
我已经按照这里的代码 - > https://github.com/jaredhanson/passport-local/tree/master/examples/express3为用户添加本地身份验证.
问题是当我尝试添加用户时
所以我创造了这条路线
app.get('/signup', function(req,res){
res.render('/signup');
});
app.post('/signup', function(req,res){
var body = req.body;
users.push(body);
res.redirect('/');
});
Run Code Online (Sandbox Code Playgroud)
那么页面就是它的形式
form(method='POST', action='/signup')
input(type='text', name='username', placeholder='username')
input(type='text', name='password', placeholder='password')
button.btn Register
Run Code Online (Sandbox Code Playgroud)
虚拟DB这是示例中的那个
users = [
{id:1, username: 'test', password:'papapa'}
];
Run Code Online (Sandbox Code Playgroud)
因此,当我发送表单信息时,一切正常,但当我尝试使用新创建的用户登录时,告诉我"错误:无法将用户序列化为会话"
serializeUser就是这个
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
findById(id, function (err, user) {
done(err, user);
});
});
Run Code Online (Sandbox Code Playgroud)
在POST /注册路由中被推送的用户将没有ID,示例序列化代码需要该ID.
把它改成这样的东西,它应该工作.
app.post('/signup', function(req,res){
var body = req.body;
body.id = users.length;
users.push(body);
res.redirect('/');
});
Run Code Online (Sandbox Code Playgroud)
(请注意,这仅是一个示例,不建议用于"真实"应用.)
归档时间: |
|
查看次数: |
6623 次 |
最近记录: |