Tag: passport.js

Passport.js twitter身份validation导致500错误,req.session未定义

我正在尝试使用passport-twitter在Node应用程序中设置会话,这样我就可以保存用户数据,但是从我所知道的情况来看,我无法打开会话支持。 另外,我确保callback函数与Twitter Developers上的应用程序条目匹配。 程序抛出的500错误是: 500 Error: OAuthStrategy requires session support. Did you forget app.use(express.session(…))?** at Strategy.OAuthStrategy.authenticate (/Users/xxxxxxxx/web/Node/on/node_modules/passport-twitter/node_modules/passport-oauth1/lib/strategy.js:120:41) at Strategy.authenticate (/Users/xxxxxxxx/web/Node/on/node_modules/passport-twitter/lib/strategy.js:85:40) …. 当我在120行检查strategy.js时,它说: if (!req.session) { return this.error(new Error('OAuthStrategy requires session support. Did you forget app.use(express.session(…))?')); } 所以,显然req.session是未定义的。 不过,我想我已经做了我需要的一切来获得会议支持工作。 这里是我的主要服务器js文件的大部分: var express = require('express'), app = express(); var http = require('http'), https = require('https'); var mongodb […]

与明文护照:序列化问题与自定义身份validation方法

#set up passport LocalStrategy = require('passport-local').Strategy passport.use(new LocalStrategy({usernameField: 'email'}, (email, password, done) -> User.findOne({ email: email }, (err, user) -> console.log("findone") if err? console.log "error" return done(err) if not user console.log("incorrect username") return done(null, false, { message: 'Incorrect username.' }) if password isnt user.password console.log "NOT" return done(null, false, {message: "Incorrect password" }) console.log "BUT […]

护照js如何configuration某人保持login状态?

在http://passportjs.org/或任何其他地方,如何正确设置用户保持login状态似乎无法find任何内容。 我目前在我的开发机器上获得了本地通行证,但是我不知道login的持续时间是多less,并且找不到有关更改设置的任何信息。 这是因为它被设置在快递或我失踪的东西?

Passport.js只redirect到失败页面,而不调用LocalStrategy

在我的Express.js小应用程序中,Passport.js存在持久性问题:无论我放在LocalStrategy中,我总是被redirect到failureRedirect,显然没有通过LocalStrategy传递…我错了什么? 我怎样才能打印/显示最大的错误日志来跟踪执行? var express = require('express'), passport = require('passport'), LocalStrategy = require('passport-local').Strategy; http = require('http'), path = require('path'), mysql = require('mysql'), flash = require('connect-flash'); var app = express(); // SQL connexion var sqlInfo = { host: 'localhost', user: 'root', password: '', database: 'mex' }; global.client = mysql.createConnection(sqlInfo); client.connect(function(err) { if(err) console.log(err); }); app.configure(function(){ app.set('views', __dirname+'/views'); […]

passportauthentication不能按预期工作

奇怪的行为,在这里。 当我用正确的用户名/密码组合/login时,它确实将我发送到/秘密路线。 当我使用错误的组合时,它会正确地将我的右侧重新导向到我开始的位置。 但是,如果我试图“locking”一条路线,请说: app.get('/mySecretRoute', passport.authenticate('local'), function(req, res, next){ res.json({test:"secret"}); }); 然后我得到一个401: Unauthorized如果我尝试login后打它。看来,一个cookie确实设置,但可能不是正确的。 我已经validation了用户是在本地策略中返回的,并且该序列化确实抓住了正确的用户。 我如何正确configuration护照使用本地策略并locking路由? 我已经看了整个文档,似乎我按照说明。 // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(passport.initialize()); app.use(passport.session()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); mongoose.connect(config.mongo.host + ':' + config.mongo.port + '/' + config.mongo.db_name); app.get('/', routes.index); app.get('/secret', function(req, res, next){ res.render("secret"); […]

Node Express:使用代理时res.redirect中断

我使用Apache ProxyPass(在httpd.conf中configuration),在代理后面运行节点快速应用程序: ProxyPass /nodeapp http://localhost:9009 我的应用程序使用Passport来authentication用户,所以当我访问基本path时,我应该被redirect到login页面: – 旧的redirect: http : //example.com : 9009 – > http://example.com:9009/login – 新的redirect: http : //example.com/nodeapp – > http://example.com/nodeapp/login 不幸的是,redirect不起作用: – redirect中断: http : //example.com/nodeapp – > http://example.com/login 我试图启用快速代理configuration,但这没有什么区别: app.enable('trust proxy'); **编辑:** Ethan在下面的评论中build议,我可以硬编码我所有的path,以适应新的环境,然而这将打破当我的本地计算机上运行的path('/')。 我正在寻找一个更集中的解决scheme,如果可能的话,可以适应不同的运行环境

Primus.io和passport.js

我考虑从Socket.io迁移到Primus.io (由于可伸缩性问题),但我缺less的一个主要插件是一个primus- passportjs授权插件(类似passport.socketio )。 你知道这样的插件或代码示例吗?

validation成功后获取input数据

Iam使用Express NodeJs,护照,连接闪光灯,mongoose 我的问题是: Iam无法理解如何在下一个呈现的页面中检索用户名和密码。 请有人build议我如何做到这一点.. app.js var http = require('http'); var express = require('express'), passport = require('passport') , LocalStrategy = require('passport-local').Strategy, flash = require('connect-flash'), User = require('./routes/userdao.js'); passport.use(new LocalStrategy( function(username, password, done) { User.findOne({ uname: username ,pwd:password}, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect […]

TypeError:无法在Object.handle中读取未定义属性'csrfSecret' – 使用Node.js

我正在制作一个简单的networking应用程序,并尝试添加身份validation。 一切工作正常(分开),直到我试图合并authentication页面与应用程序,并收到此错误消息: “TypeError:无法读取在Object.handle(C:Project \ node_modules \ express \ node_modules \ connect \ node_modules \ csurf \ index.js:46:29)undefined属性'csrfSecret'…” 这里是app.js中的代码,也许你会看到问题的根源在哪里。 var flash = require('connect-flash'); var express = require('express'); var app = express(); app.use(function(req, res, next) { req.db = {}; req.db.tasks = db.collection('tasks'); next(); }) app.locals.appname = 'Name of App' var port = process.env.PORT || 8080; var mongoose […]

令牌在获取访问令牌时已经使用了错误

我正在尝试设置node.js应用程序使用OAuth2.0使用Elance API我正在使用passport.js连接到elance API,到目前为止我们能够正确获取代码。 在使用api方法之前,我需要使用post请求获取请求令牌 。 但是,我收到了“ 已使用的代码 ”错误。 这是我的callback代码 app.get('/callback', passport.authenticate('elance', { failureRedirect: '/failure' }), function(req, res) { console.log('CODE : ' + req.query.code); // this is getting displayed properly var payload = { code: req.query.code, grant_type:'authorization_code', client_id: auth.CLIENT_ID, client_secret: auth.CLIENT_SECRET }; request.post('https://api.elance.com/api2/oauth/token/', payload) .then(function(response) { var x = response.getBody(); console.log('resp::::'+x); res.redirect('/success'); }); }); 我正在使用requestify执行发布请求,并没有使用/调用临时代码的服务器。 这是生成的错误: […]