Articles of passport.js

Node.js将parameter passing给express.js / passport.js中的require函数? 理解为什么?

嗨,大家好,我需要一些帮助理解node.js语法。 该应用程序已经把参数放在一个require函数上,它需要一个到另一个文件(而不是一个模块)的path。 让我给你一个我正在谈论的语法的例子,它位于名为server.js的主JavaScript文件上。 require('./config/passport')(passport); 和 require('./app/routes.js')(app, passport); 我需要知道为什么这些“应用程序”和“护照”parameter passing给我的要求function。 应用程序是快递,护照是护照模块。 下面是完整的相关文件。 干杯 var express = require('express'); var app = express(); var port = process.env.PORT || 8080; var mongoose = require('mongoose'); var passport = require('passport'); var flash = require('connect-flash'); require('./app/models/user'); var morgan = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var session = require('express-session'); […]

使用Passport-linkedin策略时的InternalOAuthError

我正在使用passport-linkedin,我收到这个错误。 InternalOAuthError: failed to obtain request token at /Users/davey/code/node/appify-frontend/node_modules/passport-linkedin/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:196:36 at /Users/davey/code/node/appify-frontend/node_modules/passport-linkedin/lib/passport-linkedin/strategy.js:80:19 at passBackControl (/Users/davey/code/node/appify-frontend/node_modules/passport-linkedin/node_modules/passport-oauth/node_modules/oauth/lib/oauth.js:397:13) at IncomingMessage.<anonymous> (/Users/davey/code/node/appify-frontend/node_modules/passport-linkedin/node_modules/passport-oauth/node_modules/oauth/lib/oauth.js:409:9) at IncomingMessage.emit (events.js:129:20) at _stream_readable.js:908:16 at process._tickCallback (node.js:355:11) GET /oauth/linkedin 500 1074ms – 786b 这是我的设置看起来像 exports.setup = function (config) { var passport = require('passport'); var LinkedinStrategy = require('passport-linkedin').Strategy; passport.use(new LinkedinStrategy({ consumerKey: config.linkedin.clientID, consumerSecret: config.linkedin.clientSecret, callbackURL: config.linkedin.callbackURL }, function(token, […]

我应该如何在非中间件(Passport.js)中使用req?

我想在每次login时更新用户的IP地址。 我被告知只有中间件才能获得req,res和下一个参数,但是我使用了passportjs,它应该首先授权用户。 我应该如何更新用户数据? 以下是我使用基本策略的passport.js代码块。 passport.use(new BasicStrategy( function(username, password, callback){ User.findOne({username:username}, function(err,user){ if(err){return callback(err);} //no user found with the email if(!user){return callback(null, false);} user.verifyPassword(password, function(err,isMatch){ if(err){ return callback(err);} // password did not match if(!isMatch){return callback(null,false);} //success // UPDATE USER INFO user.token = jwt.sign(user.email+Date.now(), "testtoken");//should change later user.last_login = Date.now(); // I AM TRYING TO UPDATE THIS […]

节点mongoose总是在findOne上返回错误

我使用passport.js来login用户,每当我的本地身份validationfunction到达User.findOne(),它总是返回一个错误。 我不知道我在做什么错… 我的护照代码与findOne()调用: passport.serializeUser(function(user, done) { console.log('serialize user occurred'); done(null, user.id); }); // used to deserialize the user passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); passport.use('local-signup', new LocalStrategy({ // by default, local strategy uses username and password, we will override with email usernameField : 'email', passwordField : 'password' }, function(email, password, […]

如何从passport.js授权callback成功redirect?

在我的Node.JS应用程序的服务器代码中,我使用passport.js(v0.2.1,最近的版本是v0.2.2,但从v0.2.1 – 链接没有重大变化)进行身份validation,我也有一些路由允许用户连接他们的社交networking帐户,如Twitter和Facebook。 由于用户已经login,所使用的正确的护照API函数是authenticate ,不authenticate : router.get('/api/connect/facebook/callback', passport.authorize('facebook-connect', { successRedirect: '/profile?message_code=fb_accept', failureRedirect: '/profile?message_code=fb_decline', })); 用户授权或拒绝Facebook网站上的权限后,该路由被Facebook回叫: – 如果用户拒绝权限,则调用失败redirect – 如果用户授予权限,则不调用成功redirect,而是调用下一个中间件服务器被调用 passport.js文档没有描述如何处理成功案例。 如何成功授权后redirect?

困惑于nodejs(和Passport中间件)会话

超级简单的问题,我有麻烦缠绕我的头。 与nodejs使用会话时,会话存储在用户浏览器中吗? 还是会话存储在服务器上? 例如,如果我正在使用express-session或passport.session(),这些会话cookie在哪里存储?

在单独的函数中调用passport.authenticate不起作用

我对Node和Passport比较陌生,我正在使用OAuth尝试login表单。 我在设置护照方面没有问题,而且function完整。 当我开始清理代码以将路由与中间件分开时,它只会失效。 在更改前后,我已经包含了部分代码。 所以,这工作: module.exports = function(app, passport) { app.get('/login', loginIndex) app.post('/login', passport.authenticate('local-login', { successRedirect : '/profile', failureRedirect : '/login', failureFlash : true })) function loginIndex(req, res) { res.render('login.ejs', {message: req.flash('loginMessage')}) } } 但是这不是: module.exports = function(app, passport) { app.get('/login', loginIndex) app.post('/login', loginAuth) function loginIndex(req, res) { res.render('login.ejs', {message: req.flash('loginMessage')}); } function loginAuth(){ passport.authenticate('local-login', […]

使用本地策略进行身份validation时,Passportjs引发500服务器错误

我正尝试使用Facebook和本地策略进行多策略validation。 Facebook身份validation通常工作,我的数据库得到更新,但本地策略给我以下错误: TypeError: undefined is not a function at allFailed (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:111:15) at attempt (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:160:28) at Strategy.strategy.fail (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:277:9) at Strategy.authenticate (/Users/r/Desktop/jb/node_modules/passport-local/lib/strategy.js:75:17) at attempt (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:341:16) at authenticate (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:342:7) at Layer.handle [as handle_request] (/Users/r/Desktop/jb/node_modules/express/lib/router/layer.js:82:5) at next (/Users/r/Desktop/jb/node_modules/express/lib/router/route.js:110:13) at Route.dispatch (/Users/r/Desktop/jb/node_modules/express/lib/router/route.js:91:3) at Layer.handle [as handle_request] (/Users/r/Desktop/jb/node_modules/express/lib/router/layer.js:82:5) at /Users/r/Desktop/jb/node_modules/express/lib/router/index.js:267:22 at Function.proto.process_params (/Users/r/Desktop/jb/node_modules/express/lib/router/index.js:321:12) at next (/Users/r/Desktop/jb/node_modules/express/lib/router/index.js:261:10) at SessionStrategy.strategy.pass (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:318:9) at SessionStrategy.authenticate […]

与护照js使用风帆

我正在使用护照js进行authentication。 我已经在下面的链接中的代码,以供参考。 http://blog.thesparktree.com/post/77311774912/creating-a-sails-application-using-passport 我正在尝试使用用户凭据login,但它不起作用。 我已根据注释对中间件进行了更改,并在http.js中插入了代码,但是login未得到authentication。 请让我知道我要去哪里错了,还有什么其他的改变。 我已经在Git Hub上上传了这个项目。 请检查我是否犯了致命错误。 https://github.com/kchodankar/SailsTest

passportjs无法validation快速会话

我正在使用passportjs来validation我的快速应用程序。 我所做的与教程代码非常相似,但validation会话总是让我烦恼。 在我的主要工作stream程中,我使用本地策略validation用户 passport.authenticate('local', function (err, user, info) { if (err) { req.flash('error', { msg: err.message }); return res.redirect('back'); } if (!user) { // punish abuser… }) .catch( function (err) { req.flash('error', { msg: err.message }); return res.redirect('back'); }); } else { // Log user in debug('Info: ' + 'Logging in'.green.bold); req.logIn(user, function (err) { […]