Tag: passport.js

Passport serializeUser()不会使用此authenticate()callback进行调用

使用passport.js,我这样写路由,所以我有权访问MongoDb文档userDoc 。 但是,这样做的时候… passport.serializeUser()永远不会被调用, req对象将会丢失user 。 auth.route('/auth/facebook/callback') .get(function(req, res, next) { passport.authenticate('facebook', function(err, userDoc, info) { if (err) { return next(err); } // I don't think !userDoc will ever happen because of mongo upsert if (!userDoc) { return res.redirect('/login'); } res.cookie('facebookPicUrl', userDoc.value.facebook.picture, {maxAge : 9999999, httpOnly: false, secure: false, signed: false }); res.redirect('http://localhost:9000/users') })(req, res, […]

刷新Passport.js中的令牌

我如何在Passport.js中执行此操作? 访问令牌到期时,可以使用refresh_token来“刷新”您的访问权限,并获得另一个access_token。 要使用refresh_token,您需要对grant_type设置为refresh_token的token-endpoint执行POST请求: https://podio.com/oauth/token?grant_type=refresh_token&client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&refresh_token=REFRESH_TOKEN

Passport身份validationcallback不传递req和res

这个身份validation正常工作,我得到一个redirect: server.post(authPostRoute, passport.authenticate( 'local' , { successRedirect: '/', failureRedirect: '/login' } )); 这个authentication在呼叫回叫后挂起: server.post(authPostRoute, passport.authenticate( 'local' , function(){ console.log('Hitting the callback'); console.log(arguments)} )); 这logging了以下内容: { '0': null, '1': { id: [Getter/Setter], firstName: [Getter/Setter], lastName: [Getter/Setter], email: [Getter/Setter], addedOn: [Getter/Setter], active: [Getter/Setter], password: [Getter/Setter] }, '2': undefined } 但在整个文档( http://passportjs.org/guide/authenticate/ )看起来好像它通过req和res,但它显然不是。 然后调用callback的代码: node_modules \护照\ LIB \中间件\ […]

我如何在节点中用Passport.js模拟另一个用户?

在Node中使用Passport.js,有没有办法让一个用户冒充另一个用户呢? 例如。 作为应用程序的pipe理员,我希望能够以其他用户的身份login,而无需知道密码。 最简单的,我会满意,如果我可以改变序列化的用户数据(用户ID),所以当deserializeUser被调用时,它将只是假设替代用户的身份。 我已经尝试更换req._passport.session.user和req._passport.session.user的值,但净效果只是我的会话似乎变得无效,护照注销我。

Express:是否可以绕过静态文件的会话?

我正在使用Express + Mongoose + Passport + Connect-mongo的一个非常简单的设置,一切工作正常。 唯一让我困惑的是,我可以看到passport.unserializeUser甚至为静态文件调用,从我的应用程序的angular度来看 – 绝对没有意义。 我可以理解,在某些情况下,您希望静态文件也可以在某种授权下进行服务,但是我想知道如何在“服务”静态文件的情况下“跳过”整个会话中间件。 (在生产环境中,我无法使用cookies作为资产)

使用passport.js将本地策略连接到另一个(Facebook,Twitter,Google等)

我有一个node.js应用程序使用通行证(与一个修改的passport本地login策略)进行身份validationpipe理。 我想允许用户使用护照策略连接他们的社交networking帐户,但是从我所看到的现有身份validation(在请求对象上)在新的身份validation时被覆盖。 我应该如何处理这个?

req.session.passport和req.user空,serializeUser和deserializeUser都不会被调用

我正在使用Express(v4.11.2)与护照,以支持多个提供商(本地,脸谱,微博和谷歌)访问我正在build设的networking应用程序。 作为后端,我使用的是mysql。 现在我有两个本地策略:本地注册和本地login。 我遇到的问题是,req.session.passport和req.user总是空的,实际上,serializeUser和deserializeUser永远不会被调用。 这里是快递和护照的设置: var bodyParser = require('body-parser'); var session = require('express-session'); var MemoryStore = session.MemoryStore; var _ = require('underscore'); var passport = require('passport'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); app.use(session({ key: 'KEY', secret: 'SECRET331156%^!fafsdaasd', store: new MemoryStore({reapInterval: 60000 * 10}), saveUninitialized: true, resave: false })); app.use(passport.initialize()); app.use(passport.session()); require('./config/passport')(passport); // pass passport for configuration 这里是身份validation策略的护照文件: module.exports = […]

Passport.js可选authentication

有没有从Passport.js的可选身份validation中间件? 比方说,我有一个路线, /api/users 。 我只想给公众提供一个用户列表,但是为了validation用户,我想添加更多的字段。 目前我只是一个愚蠢的自定义方法,做同样的事情,但我不知道是否: Passport.js已经提供这样的事情或 我怎么能使这个护照的一部分 ,像一个插件左右。 我的方法大致如下 function optionalAuth(req, res, next) { var authHeader = req.headers.authorization; var token = parseToken(authHeader); // just getting the OAuth token here if(!token) { return next(); } User.findOne({ token: token }, function(err, user) { if(err) { return res.json(401, {message: 'auth expired'}); }; if(user) { req.user = user; […]

passport.js,在popup窗口中进行身份validation后,closures它并redirect父窗口

在我的node.js express应用程序中,我使用passport.js集成了Facebook身份validation。 我可以在popup窗口中打开Facebooklogin页面,然后login。 在这个阶段,redirect发生在popup窗口中。 但我需要closurespopup窗口,并在父窗口中进行redirect( 即父窗口将redirect )。 我要在这里粘贴完整的代码, 虽然我认为主要问题是在模板文件(.ejs)中。 在SO里,我找不到类似的问题。 // Passport session setup. passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(obj, done) { done(null, obj); }); // Use the FacebookStrategy within Passport. passport.use(new FacebookStrategy({ clientID: config.facebook_api_key, clientSecret:config.facebook_api_secret , callbackURL: config.callback_url }, function(accessToken, refreshToken, profile, done) { console.log(" id = "+profile.id); process.nextTick(function () { //Check whether […]

使用Google Contacts API版本3.0和NodeJS的“护照”同步联系人

我正在使用护照,并希望使用Google Contacts API 3.0版将Google通讯录与我的应用程序同步(这会突然变得十倍有用)。 有没有人做到这一点? 如果是这样,你有一些示例代码? 是否有可能使用护照authentication,以使其一切工作?