我的代码无法通过护照 js 重定向.身份验证问题



>我正在尝试使用护照js进行身份验证,如果身份验证成功,则重定向到主页,但无法重定向

我试图检查护照身份验证调用是否有效。但是,是的,它可以处理身份验证失败时该怎么做,但如果它是真的,它就无法处理该怎么做。

首次提交登录表单和表单操作="/用户/创建会话"...

这是动作控制器页面...

const express=require('express');
const router=express.Router();
const passport=require('passport');


router.post('/create-session',passport.authenticate(
    'local',
    {failureRedirect:'/users/signin'},
),usersController.createSession);

...护照本地页面....

const passport=require('passport');
const LocalStrategy=require('passport-local').Strategy;
const User=require('../models/user');

使用护照进行身份验证

passport.use(new LocalStrategy({
    usernameField:'email'
    },
    function(email,password,done){
        //find a user and establish the identity
        User.findOne({email:email},function(err,user){
              if(err){
                console.log('Error in finding user --> Passport');
                return done(err);
            }
            if(!user||user.password!=password){
                console.log('Invalid Username/Password');
                return done(null,false);
            }
              return(null,user);
             })
    }
));

序列化用户以决定将哪个密钥保留在 cookie 中

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

从 cookie 中的密钥反序列化用户

passport.deserializeUser(function(id,done){
    User.findById(id,function(err,user){
        if(err){
            console.log('Error in finding User --> Passport');
            return done(err);
        }
        return done(null,user);
    });
})
module.exports=passport;

......用户控制器.创建会话页面..

module.exports.createSession=function(req,res){
    return res.redirect('/');
}

预计登录后,如果密码正确,它应该重定向到"locolhost:8000/",但轮子一直打开,有时它说页面不起作用本地主机没有发送任何数据'在此处输入代码

in code使用护照进行身份验证

passport.use(new LocalStrategy({
usernameField:'email'
},
function(email,password,done){
    //find a user and establish the identity
    User.findOne({email:email},function(err,user){
          if(err){
            console.log('Error in finding user --> Passport');
            return done(err);
        }
        if(!user||user.password!=password){
            console.log('Invalid Username/Password');
            return done(null,false);
        }
          return(null,user);
.
.
-----------------------------------------------
//instead return(null,user); .... return done(null,user);  must be there
.
.
.
         })
}
));

相关内容

  • 没有找到相关文章

最新更新