Articles of passport.js

在使用PassportJS时将用户序列化/反序列化到会话中的目的?

在使用PassportJS时序列化/反序列化用户到会话中的目的是什么? 我之前和JSP一起工作,似乎没有这些东西的概念。

使用Node Express和Passport捕获锚链接/路由

许多JavaScript框架利用锚标签在SPA内build立路由。 是否有可能捕获锚路由保存在我的会话存储进行身份validation? 例如,利用快递和护照,我有: routes.js //node stuff above app.get('/', auth.savePath, pages.index); auth.js exports.savePath = function (req, res, next) { if (!req.isAuthenticated()) { req.session.returnPath = req.originalUrl return res.redirect('/login') } next() } req.originalUrl不捕获锚path,只有应用程序path和查询stringvariables – 任何想法? 我没有看到任何可以让我捕获这些信息的快速文档。

如何使用passportjs重置密码

我正在使用passportjs来validation用户,并使用bcrypt来存储密码。 以下代码重置我的盐字段,但不会更改散列字段。 UserSchema.update({ _id: mongoose.Types.ObjectId(req.user._id.toString()), }, { $set: { salt: req.body.newPassword } }, function(err, user) {…..} 任何机构可以帮助我如何重置散列字段?

通过Passport使用cookieSession

我想用Passport使用Cookie会话存储,因为内存存储不是为生产而devise的: Warning: connection.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process. 这是我的Express初始化: app.use(express.bodyParser({keepExtensions:true})); app.use(express.cookieParser(cookieSecret)); app.use(express.cookieSession({ key: cookieKey, secret: cookieSecret, maxAge: sessionTimeout })); app.use(passport.initialize()); app.use(passport.session()); app.use(express.methodOverride()); app.use(express.static(__dirname + '/public')); 如果我将express.cookieSession更改为express.cookieSession ,一切正常。 使用cookieSession用户login成功时,用户在下次加载页面后不再login。 任何提示如何使护照与cookie会议工作? 我正在使用Express 3.0.0

护照 – 有没有办法在第一次authentication呼叫覆盖redirect?

我有一个非常奇怪的要求,我需要在一个iframe中执行身份validation。 大多数login提供程序显然会阻止其身份validation页面在iframe内部运行,所以唯一的方法是在包含iframe的页面上触发redirect。 要做到这一点,我正在寻找一种方法来覆盖passport.authenticate的行为,以便它将返回一个200状态和redirect的URL作为参数,从而允许它被调用的JavaScript代码,然后将使用响应redirect父页面。 所以,例如,我试图自定义Twitter授权: //Callback is not called since redirect is followed automatically app.get('/auth/twitter', passport.authenticate('twitter'), function(req, res) { //set status to 200 and return url as parameter instead //of performing redirect }); //This callback route is easier to customize since it //doesn't do any implicit redirects app.get('/auth/twitter/callback', passport.authenticate('twitter', { successRedirect: '/', failureRedirect: '/login' })); 我知道这是一个非常罕见的用例,但我只想知道是否有一种方法来configuration或重写此行为。 […]

Node.JS使用Sails.JS框架 – 护照:没有战略注册名称:Facebook

我正在使用Node.JS的Sails.JS框架。 我写了一个config / middleware.js,它有一个validation处理程序并进行初始连接。 该页面当前正在由config / routes.js推送的AuthController上出错。 控制台日志: Fired Facebook error: Error: no strategy registered under name: facebook at attempt (/project/node_modules/passport/lib/passport/middleware/authenticate.js:237:37) at Passport.authenticate (/project/node_modules/passport/lib/passport/middleware/authenticate.js:244:7) at AuthController.facebook (/project/api/controllers/AuthController.js:35:4) Authcontroller.js函数 'facebook': function(req, res, next) { console.log("Fired Facebook"); passport.authenticate('facebook', { failureRedirect: '/auth', scope: 'email' }, function(err, user) { console.log("Fired Login Attempt"); req.logIn(user, function(err) { if (err) { console.log(err); […]

保存用户的collections夹

我试图将用passport.jsvalidation的用户与backbone.js集合或一个id数组(我不是哪个解决scheme是最好的)关联起来,并将其保存在mongoDB中。 我在服务器端使用node.js。 可能吗? (例如保存用户的最爱)。

会议信息不会粘在身边。 Node.js,Express,Passport和Ajax

我试图让这个工作,但我迷路了。 我想将成功或失败的人redirect到提供的URL。 当他们请求authentication时,我将URL设置到服务器上的会话中。 // Setup redirect URLs if (typeof(req.session) !== 'undefined') { if (typeof(req.session.passURL) == 'undefined') { req.session.passURL = ''; } if (typeof(req.session.failURL) == 'undefined') { req.session.failURL = ''; } if (typeof(req.query.passURL) != 'undefined') { req.session.passURL = req.query.passURL; } if (typeof(req.query.failURL) != 'undefined') { req.session.failURL = req.query.failURL; } } else { console.log('No Session?!?'); } 然后,我向oAuth提供者请求auth: […]

在Node.JS中用Passport注册(注​​册)

用护照本地的例子,我得到了login工作。 没有关于如何注册用户的文档。 我想给用户一个“电子邮件”和“密码”字段,他们可以用来注册该网站。 我怎样才能做到这一点? 任何理由没有logging? 这真的很明显吗?

在node.js和redis中使用护照进行授权

我正在做护照模块和redis的经典授权,作为node.js中会话的持久性。 会话很好地保存到我的redislogin后,当redis中的会话的ttl很好地更新时,另一个请求login后等等 令我困扰的是当我在redis中手动删除会话时(或者在没有会话的情况下login之前),其他请求(除了login之外)正常传递。 不应该护照自动答复作为unautorized或我们应该这样做手动莫名其妙? 在哪一部分代码中,我应该检查在redis中是否存在与cookie相关的会话。 谢谢,伊万 如果有人需要,这是我的代码: // use local strategy passport.use(new LocalStrategy( function(username, password, done) { var userPromise = userData.findByUsername(username); userPromise.success(function(user){ if (!user) { return done(null, false); } if ( user.password != security.hash(user.salt, password) ){ // check password return done(null, false); } var userCookie = { id : user.id, username : username } return […]