Articles of passport.js

passport.js不会将用户传递给会话

我正在尝试创build一个应用程序与passport.js,节点和续集。 但是,护照没有像预期的那样在会话中返回用户。 当我loggingreq.session时,我得到这个: Session { cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true, secure: true } } 当我loggingreq.session.passport我得到未定义。 我怎样才能解决这个问题? 这是我的server.js: const express = require('express'); const load = require('express-load'); const passport = require('passport'); const cookieParser = require('cookie-parser'); const bodyParser = require('body-parser'); const session = require('express-session'); // var app = express(); var app = module.exports […]

TypeError:uri.indexOf不是一个函数

所以我是JavaScript新手,我试图在Node.js中构build一个Web应用程序。 我想用passport.js将用户身份validation添加到我的应用程序中。 但是,当我尝试启动服务器的命令提示符时,我不断收到此错误: TypeError: uri.indexOf is not a function at checkReplicaSetInUri (C:\spectray\node_modules\mongoose\lib\index.js:115:30) at Mongoose.connect (C:\spectray\node_modules\mongoose\lib\index.js:238:40) at Object.<anonymous> (C:\spectray\server.js:15:10) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:394:7) at startup (bootstrap_node.js:149:9) at bootstrap_node.js:509:3 这是我的server.js文件: var express = require('express'); var app = express(); var port […]

如何获得使用手柄的Flash消息?

我正在尝试使用我的车把模板闪存工作,但它不工作。 我如何显示消息 if(!user)return done(null,false,{message:'No user found'}) 和 return done(null,false,{message:'Oops!Wrong password。'}) 在警报框? 已安装的软件包:express,connect-flash,express-handlebars,护照,本地护照,express-session,connect-mongo app.use(flash()) passport.use(new LocalStrategy(function(username, password, done) { User.findOne({ username: username }, function(err, user) { if (err) return done(err) if (!user) return done(null, false, { message: 'No user found'}) user.comparePassword(password, function(err, isMatch) { if (isMatch) { return done(null, user) } else { return done(null, false, […]

防止用户再次loginpassportjs,如果他们被authentication一次?

我正在使用PassportJS,注册和loginfunction工作相当顺利。 我唯一遇到的问题是PassportJS(我正在使用会话),即使用户已经login,他们可以再次返回到注册/loginurl,并进行注册和/或login! 这是诱惑我。 如果有人有修正/build议,请放下。 更新 – 1 一瞥我的routes.js :(使用PassportJS以及routes.js -ensure-login。 app.get('*', function(req, res, next) { if (req.url.indexOf('/users/login') < 0 && req.url.indexOf('/users/signup') < 0) { req.session.returnTo = null; } next(); }); // ===================================== // HOME PAGE (with login links) ======== // ===================================== app.get('/', sabSettings, function(req, res) { Setting.findOne(function(err, setting) { if (err) throw err; // console.log(setting); […]

PassportJS – 在将有效载荷数据传递给passport.authenticate作为请求参数之前获取

有一个passport.js实现正在用于LDAP-auth工作。 现在下一步是使用Crypto-js客户端的Crypto-js ,如下所示: Client-side angular-js controller $scope.authenticate = function () { var auth = new login(); auth.username = $scope.username; auth.password = CryptoJS.AES.encrypt($scope.password); //// HERE auth.$save(function (response){ console.log(response); },function(err){ console.log(err); }); } Server-side service ….. ….. app.post('/login', passport.authenticate('ldapauth'), (req, res) => { console.log("req.user: ",req.user); req.session.username = req.user[ldap.username]; req.session.userModel = req.user; res.status(200).send({"success": 'success'}); }); ….. 在调用passport.authenticate之前在服务器端的服务上,用请求'req'validationaesencryption的密码需要被解密。 这怎么能在这里实现呢? […]

节点JS护照 – 400注册不好的请求

我尝试在我的Web应用程序上实现一个注册,使用Node JS和Passport.js进行本地身份validation,但是当我在Insomnia上发布请求时(如Postman),出现此错误: Bad Request 我不明白,因为我遵循我在Google上find的教程来执行此操作。 这里是路由(auth.js): const passport = require('passport'); const router = require('express').Router(); //const UserController = require('../controller/UserController'); router // login .post("/login", passport.authenticate("local", function(req, res, next) { console.log(req); })) // logout .get('/logout', (req, res, next) => { req.session.destroy((err) => { res.redirect('/login') }) }) // signup .post("/signup", passport.authenticate("local-register"), (req, res) => { var userInfo = req.body; […]

通过护照Js注册用户

我想通过passport.js的帮助从注册页面添加新用户registry单如下 <form id="Signup-form" name="SignupForm" action="/signup" method="post"/> <input type="text" id="firstname" name="Firstname" > <input type="text" id="lastname" name="Lastname"/> <input type="email" name="email" /> <input type="text" id="rollno" name="rollno"/> <input type="password" name="password" id="password"/> <input type="password" name="confirm" id="confirm-password"/> <input type="radio" name='Gender' value="Male" /> <input type="radio" name='Gender' value="FeMale" /> </form> 我的护照在app.js中初始化为 需要 var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; 数据库设置后 require('./config/passport'); 初始化为 […]

使用node-oauth和护照进行Twitter API的授权调用

我有OAuth设置与passport-twitter,login和身份validation工作正常。 尝试执行授权请求(如更新状态)时会出现问题。 passport.use(new TwitterStrategy({ consumerKey: config.twitter.clientID , consumerSecret: config.twitter.clientSecret , callbackURL: config.twitter.callback_url || 'http://' + config.domain + '/auth/twitter/callback' }, function(token, tokenSecret, profile, done) { Player.findOne({ 'twitter.id': profile.id }, function (err, player) { if (err) { return done(err) } if (!player) { var player = new Player({ name: profile.displayName , twitter: profile._json , twitter_token: token , […]

我如何添加更多的参数到我的function?

我正在使用NodeJS,expression和护照。 不过,我认为这个问题只是关于JavaScript。 在我的路线文件中,我有 app.get( '/users', login_req, user.index); 所以当服务器在/ users接收到一个get请求时,它将通过login_req函数传递req, res, next如果授权用户,login_req将调用user.index函数。 我想知道如何以及如何添加更多的参数login_req? 我的目标是能够通过login_req(['admin'],['user1', 'user2'])等附加参数来select哪些用户可以访问user.index。 这是我的login_req代码: exports.login_req = function(req, res, next) { if (req.isAuthenticated()) { return next(); } res.redirect('/login') } 我想,一般来说,我想知道如何将更多的参数附加到callback。

要求Passport.js / Node.js目录(除了一个页面)的身份validation?

我是使用Passport.js的新手,但是我发现目前为止还不错。 我使用护照本地护照。 但是,我想要求整个目录不包括一个页面的身份validation。 所以在我的节点服务器中,我正在像这样使用这个direcory(使用express): app.use("/admin", express.static(__dirname + "/admin")); 然后我想让用户打到/admin/login.html,所以我想要做这样的事情: app.get('/gb-admin/login.html', function(req, res){ }); 然后,我想要求其余的authentication,所以这样的事情: app.get('/gb-admin/*', ensureAuthenticated, function(req, res){}); 这是我的ensureAuthenticated函数,以供参考,如果有帮助: function ensureAuthenticated(req, res, next) { if (req.isAuthenticated()) { return next(); } res.redirect('/gb-admin/login.html') } 我怎么去做这个? 我一直在发送无限循环的东西,导致浏览器超时。 谁能帮忙?