Tag: passport.js

req对象在passport.authenticate

我在我的服务器上使用passportjs进行身份validation。 我正在使用下面的代码: exports.auth = function(req, res, next){ passport.authenticate('bearer', { session: false })(req, res, next); }; passport.use(new BearerStrategy( function(token, done) { User.findOne({ token: token }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false); } return done(null, user, { scope: 'read' }); }); } )); 有没有办法访问passport.use中的req对象? 这是我可以得到用户的IP地址,并检查最终的攻击。

Node.js在会话过期Express&Passport上运行function

我有一个最大的会话时间设置使用下面的代码(与Express.js&Passport.js)。 app.use(express.session({ cookie: { maxAge : 3600000 } })); 如果会话过期(我的日志文件和分析),我想运行一个函数。 一些沿着这条线: app.use(express.session.onExpiry(function(user){ console.log('User session for ' + user + ' has expired.') }); );

如何创build基于nodejs的url不同的会话?

我们的网站有两个部分: 1. admin (content management) 2. site pipe理部分将有url“/pipe理”和网站部分有url“/”。 例如:我的网站名称是www.example.com,那么pipe理部分的url是“www.example.com/admin”,网站的url是“www.example.com”。 我想创build基于url的会话意味着来自admin部分的请求将具有不同于来自site部分的请求的会话。 我该怎么做?

使用范围保护API(oauth2orize,passport,express,Nodejs)

我正在尝试使用node / express创build一个API,并使用Passport和oauth2orize来保护它。 我有API的工作,我有oauth2的东西工作,但我似乎无法弄清楚如何实现与范围保护API方法。 oauth2orize标记hander-outer: server.exchange(oauth2orize.exchange.password(function (client, username, password, scope, done) { scope = scope || ['unauthorized']; db.collection('oauth_users').findOne({username: username}, function (err, user) { if (err) return done(err); if (!user) return done(null, false); for (i in scope) if(user.scope.indexOf(scope[i]) < 0) return done(null, false); bcrypt.compare(password, user.password, function (err, res) { if (!res) return done(null, false); var token […]

与Mysql的本地令牌的Nodejs Passport

我希望用户能够以令牌开始会话。 无需input密码。 我正在使用护照本地令牌 https://www.npmjs.com/package/passport-local-token 但似乎这将与Mongodb合作。 任何想法?

如何解决:Nodejs passport.header问题,req.session.passport未定义

我目前在我的发展服务器有这个错误。 这发生在login尝试: 这是护照的具体问题。 请帮忙,这在生产服务器上工作得很好 我有我的app.js app.use(cookieParser('12345678')); app.use(session({ secret: '12345678', resave: false, saveUninitialized: true })); app.use(validator()); app.use(passport.initialize()); app.use(passport.session()); app.use(flash()); // flash – Initializing app.use(compression()); app.use('/app', express.static(path.join(__dirname, '/app'), { maxAge: 7 * 86400000 })); app.use('/uploads', express.static(path.join(__dirname, '/uploads'), { maxAge: 7 * 86400000 })); app.set('view engine', 'pug'); app.locals.pretty = false; app.set('views', './views'); app.use(function (req, res, next) { res.header("Access-Control-Allow-Origin", […]

使用护照和护照 – azure色广告时不会刷新令牌

我试图使用Passport连接到Office365。 我得到auth提示,并返回访问令牌。 问题是刷新标记是未定义的。 我的设置 // In app.js const creds = { redirectUrl: 'http://localhost:3000/token', clientID: '<myClientId>', clientSecret: '<mySecret>', identityMetadata: 'https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration', allowHttpForRedirectUrl: true, // For development only accessType: 'offline', responseType: 'code', validateIssuer: false, // For development only responseMode: 'query', scope: [ 'Contacts.Read', … ] }; const callback = (iss, sub, profile, accessToken, refreshToken, done) => { console.log('Refresh […]

在护照nodejs / hapi应用程序模块化

我使用Hapi作为node.js之上的api框架。 我也使用护照进行会话pipe理和身份validation。 我正在努力寻找一种方法来分离出这些不同组件的逻辑。 现在,我的大部分请求处理程序都有一个单独的文件,我想从主应用程序文件中获取所有处理逻辑。 有什么阻止我是护照的一些处理程序的依赖。 有问题的init代码: //init server var server = new Hapi.Server(config.hostname, config.port); server.pack.allow({ ext: true }).require(plugins, function (err) { if (err) { throw err; } }); //setup auth var Passport = server.plugins.travelogue.passport; Passport.use(new LocalStrategy( handlers.authUser ) ); 虽然大多数路由是在一个单独的文件中定义的(类似于{ method: 'POST', path: '/logout', handler: handlers.logout} )问题是有几条路由取决于Passport, m不知道如何获得处理程序文件中的Passportvariables。 取决于护照的示例路线: { method: 'POST', path: '/login', config: […]

身份validation在错误的请求中失败:缺less证书

我正在使用Passport NodeJs,Expresslogin页面。 我是一个Web开发人员,但这是我的第一个NodeJS项目。 我按照这个教程: http : //mherman.org/blog/2013/11/11/user-authentication-with-passport-dot-js/ 但每次我尝试loginlogin页面或注册页面时,我唯一拥有的就是“错误的请求”页面。 我打了个电话,看看发生了什么事: exports.postRegister = function(req, res){ login = mongoose.model('login'); login.register(new login ({ username : req.body.email}),req.body.password, function(err, login){ if (err){ return res.render('register', { login: login, error: err, title: "S'enregistrer" }); } // Something is wrong here passport.authenticate('local', function(err, user){ // So let's console log the thing ! console.log(arguments); })(req, […]

护照通过json发送错误

我正在用express +护照和angularJS做一个应用程序; 我希望能够发送任何由护照产生的错误(如用户名采取或没有提供电子邮件)由JSON所以我的angularJS应用程序可以接收这些错误的JSON响应。 更具体地说,现在我想对我的注册POST方法有一个JSON响应,输出任何错误。 我试图为自己做这个,我search遍及networking和堆栈溢出我只是无法工作了这一点! 这里是我的用户路由文件的快递: var express = require('express'); var router = express.Router(); var isAuthenticated = require('../config/isAuthenticated'); module.exports = function(passport){ router.get('/loggedin', function(req, res){ res.send(req.isAuthenticated() ? req.user : '0'); }); router.post('/signup', passport.authenticate('local-signup', { successRedirect : '/', failureRedirect : '/signup', failureFlash: true })); router.post('/login', passport.authenticate('local-login'), function(req, res){ res.send(req.user); }); router.post('/signout', function(req,res){ req.logout(); res.json({redirect: '/'}); }); router.get('/authtest', […]