Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何使用Passport JS对用户服务器端进行身份验证?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过生成随机用户名和密码自动生成用户帐户,然后用户自动登录(用户不知道他的用户名/密码,他的浏览器只存储会话cookie).

Passport作为中间件,所以如何验证我刚刚生成用户?或者,以某种方式重定向到我的app.post(‘/ login’)路由并发送这些变量会更好吗? (但不知何故将这些发送到浏览器,只是被发送回服务器似乎不是非常安全或有效).

app.get('/signup',function(req,res) {
if(req.isAuthenticated()) { res.redirect('/'); }
else {
    var today = new Date();
    var weekDate = new Date();
    weekDate.setDate(today.getDate() + 7);

    var key1 = Math.random().toString();
    var key2 = Math.random().toString();
    var hash1 = crypto.createHmac('sha1',key1).update(today.valueOf().toString()).digest('hex');
    var hash2 = crypto.createHmac('sha1',key2).update(weekDate.valueOf().toString()).digest('hex');

    var newUser = new models.User({
        username: hash1,password: hash2,signupDate: today,accountStatus: 0,expirationDate: weekDate,});

    newUser.save(function(err) {
        if(err) {}
        console.log("New user created.");

        //HOW CAN I PASS USERNAME AND PASSWORD ARGUMENTS???
        passport.authenticate('local')();
        res.redirect('/login');
    })
}
});

解决方法

将您的电话换成passport.authenticate(‘local’)();同

req.logIn(user,function(err) {
  if (err) { return next(err); }
  //copied from the docs,you might want to send the user somewhere else ;)
  return res.redirect('/users/' + user.username); 
});

让我知道这是怎么回事.

大佬总结

以上是大佬教程为你收集整理的node.js – 如何使用Passport JS对用户服务器端进行身份验证?全部内容,希望文章能够帮你解决node.js – 如何使用Passport JS对用户服务器端进行身份验证?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: